国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js字符串截取函數slice、substring和substr的比較

2019-11-20 10:01:50
字體:
來源:轉載
供稿:網友

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

取字符串的三個函數:slice(start,[end]),substring(start,[end])和substr(start,[length])
相關屬性:
slice()
第一個參數代表開始位置,第二個參數代表結束位置的下一個位置,截取出來的字符串的長度為第二個參數與第一個參數之間的差;若參數值為負數,則將該值加上字符串長度后轉為正值;若第一個參數等于大于第二個參數,則返回空字符串.
substring()
第一個參數代表開始位置,第二個參數代表結束位置的下一個位置;若參數值為負數,則將該值轉為0;兩個參數中,取較小值作為開始位置,截取出來的字符串的長度為較大值與較小值之間的差.
substr()
第一個參數代表開始位置,第二個參數代表截取的長度
PS:字符串都從0開始計起
例子:

<script type="text/javascript">   var stmp = "rcinn.cn";   //使用一個參數   alert(stmp.slice(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"   alert(stmp.substring(3));//從第4個字符開始,截取到最后個字符;返回"nn.cn"   //使用兩個參數   alert(stmp.slice(1,5))//從第2個字符開始,到第5個字符;返回"cinn"   alert(stmp.substring(1,5));//從第2個字符開始,到第5個字符;返回"cinn"   //如果只用一個參數并且為0的話,那么返回整個參數   alert(stmp.slice(0));//返回整個字符串   alert(stmp.substring(0));//返回整個字符串   //返回第一個字符   alert(stmp.slice(0,1));//返回"r"   alert(stmp.substring(0,1));//返回"r"   //在上面的例子中我們可以看出slice()和substring()的用法是相同的   //返回的值也是一樣的,但當參數為負數時,他們的返回值卻不一樣,看下面的例子   alert(stmp.slice(2,-5));//返回"i"   alert(stmp.substring(2,-5));//返回"rc"   //從上面兩個例子可以看出slice(2,-5)實際上是slice(2,3)   //負5加上字符串長度8轉換成正3(若第一位數字等于或大于第二位數字,則返回空字符串);   //而substring(2,-5)實際上是substring(2,0),負數轉換為0,substring總是把較小的數作為起始位置。   alert(stmp.substring(1,5))//從第2個字符開始,到第5個字符;返回"cinn"   alert(stmp.substr(1,5));//從第2個字符開始,截取5個字符;返回"cinn."</script>

substr 和 substring方法的區別

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

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

str=”jpg|bmp|gif|ico|png”;arr=theString.split(”|”);//arr是一個包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的數組

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

var delimitedString=myArray.join(delimiter);var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);var portableList=myList.join(”|”);//結果是jpg|bmp|gif|ico|png

 函數:indexOf()
功能:返回字符串中匹配子串的第一個字符的下標

var myString=”JavaScript”;var w=myString.indexOf(”v”);w will be 2var x=myString.indexOf(”S”);x will be 4var y=myString.indexOf(”Script”);y will also be 4var z=myString.indexOf(”key”);z will be -1

在網上看到另一種非常簡單的方法,代碼如下:

  function func(s, n) {    return s.replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);  }

這個方法非常巧妙,而且基本上是正確的。說“基本上”是因為它在取“123漢字測試”左邊長度為 6 的子串時,它返回的是“123漢字”,而不是“123漢”。當然,這也并不一定就是問題,某些情況下需求可能就是這樣。這個方法還可以再改進一下,如下:

 function func(s, n) {    return s.slice(0, n).replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);  }

以上就是本文的全部內容,希望對大家學習javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建宁县| 东安县| 连云港市| 交城县| 甘肃省| 大兴区| 黎城县| 海安县| 都江堰市| 富源县| 都安| 濉溪县| 福贡县| 沂水县| 商城县| 宜兰市| 襄汾县| 云和县| 呼伦贝尔市| 凌云县| 邵武市| 上林县| 湖州市| 遂宁市| 宁城县| 岳西县| 灌云县| 景德镇市| 县级市| 墨玉县| 桃园县| 靖江市| 石棉县| 五峰| 涿州市| 泰宁县| 宁武县| 浮梁县| 会泽县| 道孚县| 朝阳县|