js經常使用的4種截取字符串方法

日常常常把這幾個api的參數記混了,因而打算記錄下來,當不肯定的時候在拿出來翻翻;javascript

在作項目的時候,常常會須要截取字符串,因此經常使用的方法有slice()、substr()、substring()、match()方法等,四個方法的使用以下所示;java

 1 <script type="text/javascript">
 2         // 截取字符串的方法
 3         //注意一、字符串的截取都是從左向右,不會有從右向左截取;二、slice與substring方法,截取返回的字符串包含numStart而不包含numEnd;三、注意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         //三、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         //四、match方法 注意一、match方法返回的是一個含有匹配項字符串的數組;二、須要根據不一樣的狀況來寫正則;三、返回的數組裏面第一個老是原來的字符串;四、當正則表示式有子表示時(即(\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新知識仍是要養成記錄下來的習慣,但願與諸位園友共勉。正則表達式

相關文章
相關標籤/搜索