js字符串方法

103 阅读3分钟

//总结所有字符串的方法都是返回新的字符串,不会改变原始的字符串

//1.字符串可以是对象:

    const str='Bill';
    const newStr=new String('Bill');
    console.log(str==newStr,str===newStr,newStr,typeof newStr);

//2.length:返回字符串长度

    console.log('length',str.length);

//3.indexOf();返回字符串中指定的文本首次出现的索引位置,未出现返回-1,可接受两个参数,第一个参数是查找的内容,第二个参数,可传可不穿,从指定位置开始,eg;

    //返回数组的下标
    const strIndex='linAnAn'
    const strIndexResult=strIndex.indexOf('An',1);//传一个正数4,负数无效果,改用lastIndexOf()函数调用
    console.log('indexOf',strIndexResult);
    //最后一次出现位置,

//4.lastIndexOf();返回字符串中指定文本的最后一次出现的索引,未出现,返回-1;可接受两个参数,

//第一个参数是查找的内容,第二个参数,可传,可不穿,从开头指定位置,eg

    const strLastIndexOf='you are my sunshine'
    const strLastIndexOfResult=strLastIndexOf.lastIndexOf('e',10);//从开头到10,找到最后字符串
    console.log('lastIndexOf',strLastIndexOfResult);

//5.search();搜索特定值的字符串,并返回匹配的位置

    const strSearch='you are my sunshine';
    const strSearchResult=strSearch.search('s');
    console.log('search',strSearchResult);//找到最开始的一个search,返回位置下标

//6.slice();提取字符串的某个部分并在新字符串中返回被提取的部分,两个参数。

    //起始索引,终止索引;不改变原来的字符串,参数可以是负数,负数从后面开始截取字符串,如果只是
    //传一个参数,就是从该参数的索引到最后的全部字符。
    const strSlice='you from where?'
    const strSliceResult=strSlice.slice(2);//从开始索引到最后
    const strSliceResult1=strSlice.slice(-2);//从倒数第二个到最后
    const strSliceResult2=strSlice.slice(-2,6);//错误写法(不存在逆序)
    const strSliceResult3=strSlice.slice(-2,-4);//错误写法(不存在逆序)
    const strSliceResult4=strSlice.slice(-4,-1);//依然遵循顺序(不存在逆序)
    console.log('slice',strSliceResult,strSliceResult1,strSliceResult2,strSliceResult3,strSliceResult3,strSliceResult4);

//7.subString();//与slice方法一样,但是不支持负数

    const strSubString='what is you like?';
    const strSubStringResult=strSubString.substring(1,5);//最后一个字符不需要
    const strSubStringResult1=strSubString.substring(2);
    const strSubStringResult2=strSubString.substring(4,1);//可以传递逆序的数字参数,但是获取的还是顺序结果//hat
    const strSubStringResult3=strSubString.substring(-1);//错误写法,没有效果
    console.log('subString',strSubStringResult,strSubStringResult1,strSubStringResult2,strSubStringResult3);

//8.substr(起始位置,切割长度);第二个参数代表的是长度,不能是负数。

    const strSubstr='where you want to go?';
    const strSubstrResult=strSubstr.substr(1,2);
    const strSubstrResult1=strSubstr.substr(-5,3);//顺序结果截取
    console.log('substr',strSubstrResult,strSubstrResult1);

//9.toUpperCase();把字符串转换成大写,toLowerCase()把字符串转换为小写

//10.trim()删除字符串两端空白符号

    const strTrim=' ye li li';
    const strTrimResult=strTrim.trim();
    console.log('trim','是否还存在空格'+strTrimResult+'是否还存在空格');//已经去除两边空格

//11.concat()连接字符串

//12.charAt('索引值');返回指定下标的字符串

    const strCharAt='yin yue';
    console.log(strCharAt.charAt(1));//当不穿下标时候,默认代表传入下标为零

//13.split();字符串分割为数组;使用指定的分割符号把字符串分割为多个数组,如果字符串中没有找到指定的分隔符,就以数组形式返回原本的字符串。

    const strSplit='tomorrow is new day';
    const strSplitResult=strSplit.split(' ');
    const strSplitResult1=strSplit.split();//没有指定就直接将字符串以数组形式返回
    console.log('split',strSplitResult,strSplitResult1);//

//14.replace();替换字符串内容。

    //1.只替换首个匹配(如果需要都匹配修改可以使用正则表达式,但是不能使用引号)
    //2.对大小写敏感
    //3.不会改变调用它的字符串,它返回的是新的字符串
    const strReplace='you my love';
    const strReplaceResult=strReplace.replace('y','小偷');//默认匹配第一个符合的
    const strReplaceResultAll=strReplace.replace(/y/g,'贼');//使用正则表达式实现全局匹配
    console.log('replace',strReplaceResult,strReplaceResultAll);

//15.includes(查找项,开始索引);存在返回true,不存在返回false

    const strIncludes='可惜没有如果y';
    const strIncludesResult=strIncludes.includes('y',4);//返回true
    const strIncludesResult1=strIncludes.includes('Y',4);//区分大小写的搜索//返回false
    console.log('includes',strIncludesResult,strIncludesResult1);

//16.startsWith('查找项');以指定字符开头。是返回true,否返回false

    const strStartsWith='可惜没有如果';
    const strStartsWithResult=strStartsWith.startsWith('可惜');
    const strStartsWithResult1=strStartsWith.startsWith('如果');
    console.log('startsWith',strStartsWithResult,strStartsWithResult1);

//17.endsWith('查找项');//查找是否以该字符串结尾