仿写字符串对象

2017-12-27  本文已影响0人  浅夏_cd06

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"));
上一篇 下一篇

猜你喜欢

热点阅读