JS常用的4种截取字符串方法
不一是为丕 人气:0JS常用的4种截取字符串方法
平常经常把这几个api的参数记混了,于是打算记录下来,当不确定的时候在拿出来翻翻;
在做项目的时候,经常会需要截取字符串,所以常用的方法有slice()、substr()、substring()、match()方法等,四个方法的使用如下所示;
<script type="text/javascript"> // 截取字符串的方法 //注意1、字符串的截取都是从左向右,不会有从右向左截取;2、slice与substring方法,截取返回的字符串包含numStart而不包含numEnd;3、注意slice方法当numStart大于numEnd时截取为空而substring当numStart大于numEnd时回调换二者位置,截取numEnd到numStart之间的字符串 var str = "HellohappyworldHello!"; //1.slice(numStart,numEnd) 返回的值为截取指定下标之间的字符串,参数可以为负数,可以不填,正整数表示从左向右读取小兵截取,负整数表示从右向左读取下标截取,当第一个开始下标参数为负整数时,第二个参数不需要了,如果写上不管是正整数还是负整数都截取为空的字符串,总结如下,不填参数时,截取取的是原字符串,第一个参数为正整数时,第二个参数,可不填(即为到字符串结尾),可填正整数(即从start-end),可以为负整数(即start-(str.length+end)),第一个参数为负整数时(即从右向左读取下标截取,右是从-1开始),第二个参数写上会截取为空,最后注意第二个参数都不能大于第一个参数,可以与坐标轴类比 var sliceStr1 = str.slice(2); //llohappyworldHello! var sliceStr2 = str.slice(2,7); //lloha var sliceStr3 = str.slice(-2); //o! var sliceStr4 = str.slice(-2,5); //"" var sliceStr5 = str.slice(-2,-5); //"" var sliceStr6 = str.slice(2,-5); //llohappyworldH console.log(sliceStr1); console.log(sliceStr2); console.log(sliceStr3); console.log(sliceStr4); console.log(sliceStr5); console.log(sliceStr6); //2.substr(numStart,length) 返回的是从指定位置截取,length长度的字符串,numStart必填,为正整数时,表示从左向右读取下标截取,当为负整数时,表示从右至左读取下标截取,第二个参数表示需要截取字符串的长度,当为负整数时,返回的为空,整数数时表示截取的长度,当超过字符串的剩余长度时,到字符串末尾为止 var substrStr1 = str.substr(2); //llohappyworldHello! var substrStr2 = str.substr(-2); //o! var substrStr3 = str.substr(2,18); //llohappyworldHello var substrStr4 = str.substr(-2,1); //o var substrStr5 = str.substr(-2,-1); //"" console.log(substrStr1); console.log(substrStr2); console.log(substrStr3); console.log(substrStr4); console.log(substrStr5); //3、substring(numStart,numEnd) 与slice类似,但是第一个参数为负整数时,截取的为整个字符串 var substringStr1 = str.substring(2); //llohappyworldHello! var substringStr2 = str.substring(-2);//HellohappyworldHello! var substringStr3 = str.substring(7,2); //lloha var substringStr4 = str.substring(2,7); //lloha console.log(substringStr1); console.log(substringStr2); console.log(substringStr3); console.log(substringStr4); //4、match方法 注意1、match方法返回的是一个含有匹配项字符串的数组;2、需要根据不同的情况来写正则;3、返回的数组里面第一个总是原来的字符串;4、当正则表示式有子表示时(即(\S*)括号内的内容),且为全局匹配时只查找全匹配正则表达式并返回所有内容,为非全局时,返回的是多个元素数组;当正则表达式无子表达式时,且为全局匹配时,返回的是多个元素的数组,如果为非全局匹配时,返回的是匹配到第一个元素的数组 var regStr1 = str.match(/Hello/g); //["Hello","Hello"] var regStr9 = str.match(/Hello/); //["Hello"] var regStr2 = str.match(/hello/g); //null var regStr3 = str.match(/Hello(\S*)world/); //["Hellohappyworld", "happy"] //截取中间字符串 var regStr4 = str.match(/(\S*)world/g); //["Hellohappyworld"] //截取指定字符之前的字符串 var regStr5 = str.match(/(\S*)world/); //["Hellohappyworld", "Hellohappy"] //截取指定字符之前的字符串 var regStr6 = str.match(/Hello(\S*)/g); //["HellohappyworldHello!"] //截取指定字符之后的字符串 var regStr7 = str.match(/Hello(\S*)/); //["HellohappyworldHello!", happyworld!] //截取指定字符之后的字符串 var regStr8 = str.match(/llo(\S*)/); //["llohappyworldHello!", happyworldHello!] //截取指定字符的字符串 console.log(regStr1); console.log(regStr9); console.log(regStr2); console.log(regStr3); console.log(regStr4); console.log(regStr5); console.log(regStr6); console.log(regStr7); console.log(regStr8); </script>
当然上面这些方法与使用方式都是一些简单的需求,当项目中的需求比较复杂时还得结合实际情况来进行截取,不过不管怎样使用的方法or实现思路都大概类似,另外也鞭策一下自己好记性不如烂笔头,碰到什么问题or新知识还是要养成记录下来的习惯,希望与诸位园友共勉。
补充:js中常遇到 切割截取字符串的几种方法
切割截取字符串的几种方法
1、 split() 方法用于把一个 字符串 分割成 字符串数组 ;
stringObject.split(str,length)
var str = "123,456,789"; console.log(str.split('')); // ["1", "2", "3", ",", "4", "5", "6", ",", "7", "8", "9"] console.log(str.split(',')); // ["123", "456", "789"]
参数 | 描述 |
---|---|
str | 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject |
length | 可选。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度 |
注意:如果把空字符串 ("") 用作 str,那么 stringObject 中的每个字符之间都会被分割。
2、 slice() 可提取字符串的某个部分,并以新的字符串返回被提取的部分;
第一个参数必填,第二个参数选填; 注意:如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取
如图所示:[1,2,3,4].slice(0, 3) 0代表开始选取的位置 start,3代表结束位置
var str = "123,456,789"; console.log(str.slice(2,6)); // 3,45 console.log(str.slice(-6,-2)); // 56,7 console.log(str.slice(2)); // 3,456,789 console.log(str.slice(-6)); // 56,789
3、substring() 提取字符串中介于两个指定下标之间的字符
语法:string.substring(from, to)
;from必选而且非负的整数
,to可选非负的整数
但是to的值必须比from大位置多1个;
var str = "123,456,789"; console.log(str.substring(2,6)); // 3,45 console.log(str.substring(2)); // 3,456,789 console.log(str.substring(6,2)); // 3,45 console.log(str.substring(-6,-2)); // console.log(str.substring(6,6)); //
4、join() 把数组中的所有元素转换一个字符串
var str = [123,456,789]; console.log(str.join('')); // 123456789 console.log(str.join(',')); // 123,456,789
5、 charAt() 返回指定位置的字符
string.charAt(index)
index:必需。表示字符串中某个位置的数字,即字符在字符串中的位置。
***:自己开发中常遇到,就当一个笔记,记不住打开看看例子就明白;
加载全部内容