js常用的4种截取字符串方法

平常经常把这几个api的参数记混了,于是打算记录下来,当不确定的时候在拿出来翻翻;

在做项目的时候,经常会需要截取字符串,所以常用的方法有slice、substr、substring、match方法等,四个方法的使用如下所示;

 1 <script type="text/javascript">
 2         // 截取字符串的方法
 3         
//注意
1、字符串的截取都是从左向右,不会有从右向左截取;
2、slice与substring方法,截取返回的字符串包含numStart而不包含numEnd;
3、注意slice方法当numStart大于numEnd时截取为空而substring当numStart大于numEnd时回调换二者位置,截取numEnd到numStart之间的字符串
 4         var str = "HellohappyworldHello!";
 5         //1.slice(numStart,numEnd)  
返回的值为截取指定下标之间的字符串,参数可以为负数,可以不填,正整数表示从左向右读取小兵截取,负整数表示从右向左读取下标截取,当第一个开始下标参数为负整数时,
第二个参数不需要了,如果写上不管是正整数还是负整数都截取为空的字符串,总结如下,不填参数时,截取取的是原字符串,第一个参数为正整数时,
第二个参数,可不填(即为到字符串结尾),可填正整数(即从start-end),可以为负整数(即start-(str.length+end)),
第一个参数为负整数时(即从右向左读取下标截取,右是从-1开始),第二个参数写上会截取为空,最后注意第二个参数都不能大于第一个参数,可以与坐标轴类比
 6         var sliceStr1 = str.slice(2);  //llohappyworldHello!
 7         var sliceStr2 = str.slice(2,7); //lloha
 8         var sliceStr3 = str.slice(-2); //o!  
 9         var sliceStr4 = str.slice(-2,5); //"" 
10         var sliceStr5 = str.slice(-2,-5); //"" 
11         var sliceStr6 = str.slice(2,-5); //llohappyworldH
12         console.log(sliceStr1);
13         console.log(sliceStr2);
14         console.log(sliceStr3);
15         console.log(sliceStr4);
16         console.log(sliceStr5);
17         console.log(sliceStr6);
18 
19         //2.substr(numStart,length) 
返回的是从指定位置截取,length长度的字符串,numStart必填,为正整数时,表示从左向右读取下标截取,当为负整数时,表示从右至左读取下标截取,
第二个参数表示需要截取字符串的长度,当为负整数时,返回的为空,整数数时表示截取的长度,当超过字符串的剩余长度时,到字符串末尾为止
20         var substrStr1 = str.substr(2); //llohappyworldHello!
21         var substrStr2 = str.substr(-2); //o!
22         var substrStr3 = str.substr(2,18); //llohappyworldHello
23         var substrStr4 = str.substr(-2,1); //o
24         var substrStr5 = str.substr(-2,-1); //""
25         console.log(substrStr1);
26         console.log(substrStr2);
27         console.log(substrStr3);
28         console.log(substrStr4);
29         console.log(substrStr5);
30 
31         //3、substring(numStart,numEnd) 
与slice类似,但是第一个参数为负整数时,截取的为整个字符串
32         var substringStr1 = str.substring(2); //llohappyworldHello!
33         var substringStr2 = str.substring(-2);//HellohappyworldHello!
34         var substringStr3 = str.substring(7,2); //lloha
35         var substringStr4 = str.substring(2,7); //lloha
36         console.log(substringStr1);
37         console.log(substringStr2);
38         console.log(substringStr3);
39         console.log(substringStr4);
40 
41         //4、match方法 
注意1、match方法返回的是一个含有匹配项字符串的数组;
2、需要根据不同的情况来写正则;
3、返回的数组里面第一个总是原来的字符串;
4、当正则表示式有子表示时(即(\S*)括号内的内容),且为全局匹配时只查找全匹配正则表达式并返回所有内容,为非全局时,返回的是多个元素数组;
当正则表达式无子表达式时,且为全局匹配时,返回的是多个元素的数组,如果为非全局匹配时,返回的是匹配到第一个元素的数组
42         var regStr1 = str.match(/Hello/g);  //["Hello","Hello"]
43         var regStr9 = str.match(/Hello/);  //["Hello"]
44         var regStr2 = str.match(/hello/g); //null
45         var regStr3 = str.match(/Hello(\S*)world/); 
//["Hellohappyworld", "happy"] //截取中间字符串
46         var regStr4 = str.match(/(\S*)world/g); //["Hellohappyworld"]
 //截取指定字符之前的字符串
47         var regStr5 = str.match(/(\S*)world/); //["Hellohappyworld", 
"Hellohappy"] //截取指定字符之前的字符串
48         var regStr6 = str.match(/Hello(\S*)/g); 
//["HellohappyworldHello!"] //截取指定字符之后的字符串
49         var regStr7 = str.match(/Hello(\S*)/); 
//["HellohappyworldHello!", happyworld!] //截取指定字符之后的字符串
50         var regStr8 = str.match(/llo(\S*)/); 
//["llohappyworldHello!", happyworldHello!] //截取指定字符的字符串
51         console.log(regStr1);
52         console.log(regStr9);
53         console.log(regStr2);
54         console.log(regStr3);
55         console.log(regStr4);
56         console.log(regStr5);
57         console.log(regStr6);
58         console.log(regStr7);
59         console.log(regStr8);
60     </script>

当然上面这些方法与使用方式都是一些简单的需求,当项目中的需求比较复杂时还得结合实际情况来进行截取,不过不管怎样使用的方法or实现思路都大概类似,

另外也鞭策一下自己好记性不如烂笔头,碰到什么问题or新知识还是要养成记录下来的习惯,希望与诸位园友共勉。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值