JS常用的4種截取字符串方法
JS常用的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:必需。表示字符串中某個位置的數字,即字符在字符串中的位置。
***:自己開發中常遇到,就當一個筆記,記不住打開看看例子就明白;
到此這篇關於JS常用的4種截取字符串方法的文章就介紹到這瞭,更多相關js截取字符串方法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JS字符串分割方法整理匯總示例講解(3種截取方法和6個輔助方法)
- js字符串分割處理的幾種方法(6種)
- JS截取字符串的方法詳解
- JavaScript 引用類型之原始值包裝類型String
- JS截取字符串的三種方法詳解