更新時(shí)間:2020-10-23 17:59:34 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1233次
字符串的截取在不同的編程語言中有著不同的方式和表現(xiàn)形式,本文我們就一起來學(xué)習(xí)在JavaScript截取字符串。
在JavaScript中常用的字符截取函數(shù)有slice()、substring()、substr()3個(gè),我們將從這三個(gè)函數(shù)出發(fā),看看在JavaScript中,這些函數(shù)是如何通過JavaScript截取字符串的。
下面是這三個(gè)JavaScript截取字符串方式:
1.slice()
第一個(gè)參數(shù)代表開始位置,第二個(gè)參數(shù)代表結(jié)束位置的下一個(gè)位置,截取出來的字符串的長度為第二個(gè)參數(shù)與第一個(gè)參數(shù)之間的差;若參數(shù)值為負(fù)數(shù),則將該值加上字符串長度后轉(zhuǎn)為正值;若第一個(gè)參數(shù)等于大于第二個(gè)參數(shù),則返回空字符串。
2.substring()
第一個(gè)參數(shù)代表開始位置,第二個(gè)參數(shù)代表結(jié)束位置的下一個(gè)位置;若參數(shù)值為負(fù)數(shù),則將該值轉(zhuǎn)為0;兩個(gè)參數(shù)中,取較小值作為開始位置,截取出來的字符串的長度為較大值與較小值之間的差。
3.substr()
第一個(gè)參數(shù)代表開始位置,第二個(gè)參數(shù)代表截取的長度
PS:字符串都從0開始計(jì)起
例子:
substr 和 substring方法的區(qū)別
函數(shù):split()
功能:使用一個(gè)指定的分隔符把一個(gè)字符串分割存儲到數(shù)組
例子:
str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一個(gè)包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的數(shù)組
函數(shù):John()
功能:使用您選擇的分隔符將一個(gè)數(shù)組合并為一個(gè)字符串
例子:
var delimitedString=myArray.join(delimiter);
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//結(jié)果是jpg|bmp|gif|ico|png
函數(shù):indexOf()
功能:返回字符串中匹配子串的第一個(gè)字符的下標(biāo)
var myString=”JavaScript”;
var w=myString.indexOf(”v”);w will be 2
var x=myString.indexOf(”S”);x will be 4
var y=myString.indexOf(”Script”);y will also be 4
var z=myString.indexOf(”key”);z will be -1
在網(wǎng)上看到另一種非常簡單的方法,代碼如下:
function func(s, n) {
return s.replace(/([^x00-xff])/g, "$1a").slice(0, n).replace(/([^x00-xff])a/g, "$1");
}
這個(gè)方法非常巧妙,而且基本上是正確的。說“基本上”是因?yàn)樗谌 ?23漢字測試”左邊長度為 6 的子串時(shí),它返回的是“123漢字”,而不是“123漢”。當(dāng)然,這也并不一定就是問題,某些情況下需求可能就是這樣。這個(gè)方法還可以再改進(jìn)一下,如下:
function func(s, n) {
return s.slice(0, n).replace(/([^x00-xff])/g, "$1a").slice(0, n).replace(/([^x00-xff])a/g, "$1");
}
總的來說,相對于其他編程語言而言,JavaScript截取字符串是通過函數(shù)的方法更為直接簡單,當(dāng)然我們也可以直接調(diào)用函數(shù)截取字符串。在本站的Java零基礎(chǔ)教程中,我們也可以根據(jù)本文的內(nèi)容拓展學(xué)習(xí)Java截取字符串的方法。
初級 202925
初級 203221
初級 202629
初級 203743