js字符串截取函數(shù)slice、substring和substr的比較
來源:易賢網(wǎng) 閱讀:750 次 日期:2016-06-27 16:04:01
溫馨提示:易賢網(wǎng)小編為您整理了“js字符串截取函數(shù)slice、substring和substr的比較”,方便廣大網(wǎng)友查閱!

這篇文章主要震碎js字符串截取函數(shù)slice、substring和substr進(jìn)行比較,感興趣的小伙伴們可以參考一下

在js中字符截取函數(shù)有常用的三個slice()、substring()、substr()了,下面我來給大家介紹slice()、substring()、substr()函數(shù)在字符截取時的一些用法與區(qū)別吧。

取字符串的三個函數(shù):slice(start,[end]),substring(start,[end])和substr(start,[length])

相關(guān)屬性:

slice()

第一個參數(shù)代表開始位置,第二個參數(shù)代表結(jié)束位置的下一個位置,截取出來的字符串的長度為第二個參數(shù)與第一個參數(shù)之間的差;若參數(shù)值為負(fù)數(shù),則將該值加上字符串長度后轉(zhuǎn)為正值;若第一個參數(shù)等于大于第二個參數(shù),則返回空字符串.

substring()

第一個參數(shù)代表開始位置,第二個參數(shù)代表結(jié)束位置的下一個位置;若參數(shù)值為負(fù)數(shù),則將該值轉(zhuǎn)為0;兩個參數(shù)中,取較小值作為開始位置,截取出來的字符串的長度為較大值與較小值之間的差.

substr()

第一個參數(shù)代表開始位置,第二個參數(shù)代表截取的長度

PS:字符串都從0開始計起

例子:

<script type="text/javascript">

   var stmp = "rcinn.cn";

   //使用一個參數(shù)

   alert(stmp.slice(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"

   alert(stmp.substring(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"

   //使用兩個參數(shù)

   alert(stmp.slice(1,5))//從第2個字符開始,到第5個字符;返回"cinn"

   alert(stmp.substring(1,5));//從第2個字符開始,到第5個字符;返回"cinn"

   //如果只用一個參數(shù)并且為0的話,那么返回整個參數(shù)

   alert(stmp.slice(0));//返回整個字符串

   alert(stmp.substring(0));//返回整個字符串

   //返回第一個字符

   alert(stmp.slice(0,1));//返回"r"

   alert(stmp.substring(0,1));//返回"r"

   //在上面的例子中我們可以看出slice()和substring()的用法是相同的

   //返回的值也是一樣的,但當(dāng)參數(shù)為負(fù)數(shù)時,他們的返回值卻不一樣,看下面的例子

   alert(stmp.slice(2,-5));//返回"i"

   alert(stmp.substring(2,-5));//返回"rc"

   //從上面兩個例子可以看出slice(2,-5)實(shí)際上是slice(2,3)

   //負(fù)5加上字符串長度8轉(zhuǎn)換成正3(若第一位數(shù)字等于或大于第二位數(shù)字,則返回空字符串);

   //而substring(2,-5)實(shí)際上是substring(2,0),負(fù)數(shù)轉(zhuǎn)換為0,substring總是把較小的數(shù)作為起始位置。

   alert(stmp.substring(1,5))//從第2個字符開始,到第5個字符;返回"cinn"

   alert(stmp.substr(1,5));//從第2個字符開始,截取5個字符;返回"cinn."

</script>

substr 和 substring方法的區(qū)別

<script type="text/javascript"> 

var str = "0123456789";// 

alert(str.substring(0));//------------"0123456789" 

alert(str.substring(5));//------------"56789" 

alert(str.substring(10));//-----------"" 

alert(str.substring(12));//-----------"" 

alert(str.substring(-5));//-----------"0123456789" 

alert(str.substring(-10));//----------"0123456789" 

alert(str.substring(-12));//----------"0123456789" 

alert(str.substring(0,5));//----------"01234" 

alert(str.substring(0,10));//---------"0123456789" 

alert(str.substring(0,12));//---------"0123456789" 

alert(str.substring(2,0));//----------"01" 

alert(str.substring(2,2));//----------"" 

alert(str.substring(2,5));//----------"234" 

alert(str.substring(2,12));//---------"23456789" 

alert(str.substring(2,-2));//---------"01" 

alert(str.substring(-1,5));//---------"01234" 

alert(str.substring(-1,-5));//--------"" 

alert(str.substr(0));//---------------"0123456789" 

alert(str.substr(5));//---------------"56789" 

alert(str.substr(10));//--------------"" 

alert(str.substr(12));//--------------"" 

alert(str.substr(-5));//--------------"0123456789" 

alert(str.substr(-10));//-------------"0123456789" 

alert(str.substr(-12));//-------------"0123456789" 

alert(str.substr(0,5));//-------------"01234" 

alert(str.substr(0,10));//------------"0123456789" 

alert(str.substr(0,12));//------------"0123456789" 

alert(str.substr(2,0));//-------------"" 

alert(str.substr(2,2));//-------------"23" 

alert(str.substr(2,5));//-------------"23456" 

alert(str.substr(2,12));//------------"23456789" 

alert(str.substr(2,-2));//------------"" 

alert(str.substr(-1,5));//------------"01234" 

alert(str.substr(-1,-5));//-----------"" 

</script>

函數(shù):split() 

功能:使用一個指定的分隔符把一個字符串分割存儲到數(shù)組

例子:

str=”jpg|bmp|gif|ico|png”;

arr=theString.split(”|”);

//arr是一個包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的數(shù)組

函數(shù):John() 

功能:使用您選擇的分隔符將一個數(shù)組合并為一個字符串

例子:

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()

功能:返回字符串中匹配子串的第一個字符的下標(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″);

}

這個方法非常巧妙,而且基本上是正確的。說“基本上”是因?yàn)樗谌 ?23漢字測試”左邊長度為 6 的子串時,它返回的是“123漢字”,而不是“123漢”。當(dāng)然,這也并不一定就是問題,某些情況下需求可能就是這樣。這個方法還可以再改進(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″);

}

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:js字符串截取函數(shù)slice、substring和substr的比較
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)