title: 仿写字符串对象
date: 2017-11-14 22:02:18
tags:
字符串类型 <font style="color: #8D0000;">concat | replace | split | substr | subString | search</font>
prototype给某个类添加属性或方法
var str1="How are you? I'm fine. You are welcome!";
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strConcat方法</font>
String.prototype.strConcat=function(str){
var res = this + str;
return res;
}
console.log(str1.strConcat("123"));
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strSubstr方法</font>
String.prototype.strSubstr=function(index,length){
var str='';
for(var i=index;i<index+length;i++){
str+=this.charAt(i);
}
return str;
}
console.log(str1.strSubstr(4,5));
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strSubstring方法</font>
String.prototype.strSubstring=function(start,end){
var str='';
for(var i=start;i<end;i++){
str+=this.charAt(i);
}
return str;
}
console.log(str1.strSubstring(4,6));
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strSplit方法</font>
String.prototype.strSplit=function(str){
// 用来存放新数组
var newArr=[];
// 用来存放分隔符在this中的位置
var arr1=[];
// 用来遍历数组
var arr=[];
for(var i=0;i<this.length;i++){
arr[i]="";
// 把this按照分隔符的长度,每个字符往后遍历str.length个字符,
for(var j=i;j<i+str.length;j++){
arr[i]+=this.charAt(j);
}
// 在this中找到分割符
if(arr[i]==str){
// 分隔符在this中的位置
arr1.myPush(i);
}
}
// 从0开始到第一个分割符之间的字符串
newArr[0]="";
for(var i=0;i<arr1[0];i++){
newArr[0]+=this.charAt(i);
}
// 从第一个分隔符到最后一个分割符,每两个分隔符之间的字符串
for(var i=0;i<arr1.length-1;i++){
newArr[i+1]="";
for(var j=arr1[i]+str.length;j<arr1[i+1];j++){
newArr[i+1]+=this.charAt(j);
}
}
// 最后一个分隔符到原字符串之间的字符串
newArr[newArr.length]="";
for(var i=arr1[arr1.length-1]+str.length;i<this.length;i++){
newArr[newArr.length-1]+=this.charAt(i);
}
console.log(arr1);
return newArr;
}
console.log(str1.strSplit("are"));
console.log(str1.split('are'));
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strReplace方法</font>
String.prototype.strReplace=function(a,b){
var newArr=[];
var str='';
newArr=this.strSplit(a);
for(var i=0;i<newArr.length-1;i++){
str+=newArr[i]+b;
}
str+=newArr[newArr.length-1];
return str;
}
console.log(str1.strReplace("are","is"));
console.log(str1.replace("are","is"));
<font style="color: #8000D0;">给字符串类(所有的字符串对象)添加strSearch方法</font>
String.prototype.strSearch=function(str){
// 用来存放分隔符在this中的位置
var arr1=[];
// 用来遍历数组
var arr=[];
for(var i=0;i<this.length;i++){
arr[i]="";
// 把this按照分隔符的长度,每个字符往后遍历str.length个字符,
for(var j=i;j<i+str.length;j++){
arr[i]+=this.charAt(j);
}
// 在this中找到分割符
if(arr[i]==str){
// 分隔符在this中的位置
arr1.myPush(i);
break;
}
}
return arr1;
}
console.log(str1.strSearch("are"));
网友评论