Javascript之字串擷取函式slice()、substring()、substr()
取字串的三個函式:slice(start, [end]),substring(start, [end])和substr(start, [length])
slice()
第一個引數代表開始位置,第二個引數代表結束位置的下一個位置,擷取出來的字串的長度為第二個引數與第一個引數之間的差;若引數值為負數,則將該值加上字串長度後轉為正值;若第一個引數等於大於第二個引數,則返回空字串.
substring()
第一個引數代表開始位置,第二個引數代表結束位置的下一個位置;若引數值為負數,則將該值轉為0;兩個引數中,取較小值作為開始位置,擷取出來的字串的長度為較大值與較小值之間的差.
substr()
第一個引數代表開始位置,第二個引數代表擷取的長度
PS:字串都從0開始計起
例子:
功能:使用一個指定的分隔符把一個字串分割儲存到陣列
例子:
功能:使用您選擇的分隔符將一個陣列合併為一個字串
例子:
功能:返回字串中匹配子串的第一個字元的下標
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″);
}
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 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
在網上看到另一種非常簡單的方法,程式碼如下: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″);
}
相關文章
- 字串擷取 slice,substr,substring 的區別字串
- JS字串擷取函式slice(),substring(),substr()的用法 區別split()後期遇到補充JS字串函式
- Js中substr,substring,slice擷取字串的異同JS字串
- 擷取字串的三種方法 substr,slice,substring的區別字串
- substr擷取函式 筆記函式筆記
- 吐槽Javascript系列一:slice()、substr()和 substring()JavaScript
- MySQL 字串函式:字串擷取MySql字串函式
- MySQl 擷取函式 left(),right(),substring(),substring_index() 的用法MySql函式Index
- javascript中string物件方法中的slice、substring、substr的區別聯絡JavaScript物件
- sql常用函式詳解(一)——字串擷取SQL函式字串
- MySQL 字串擷取相關函式總結MySql字串函式
- JavaScript 中substr與 substring 的區別JavaScript
- JavaScript 擷取指定指定區間字串JavaScript字串
- JavaScript 字串slice()JavaScript字串
- JavaScript 字串 slice()JavaScript字串
- python函式教程:Python 字串操作(string替換、擷取等)Python函式字串
- 字串擷取字串
- Oracle中REGEXP_SUBSTR函式(字串轉多行)Oracle函式字串
- JavaScript 擷取字串JavaScript字串
- substr()和substring()區別
- MySQL常用的字元函式:length,cancat,substr(substring),instr,trim,upper,lower,lpad,rpad,replaceMySql字元函式
- PHP 查詢、擷取字串函式詳解PHP字串函式
- insert()與substr()函式函式
- jQuery字串擷取詳解jQuery字串
- SUBSTRING() 與 CONV() 函式函式
- [提問交流]分享一個擷取字串的函式字串函式
- JavaScript擷取字串方式總結JavaScript字串
- JavaScript substr()JavaScript
- mysql 函式substring_index()MySql函式Index
- mysql 擷取指定的兩個字串之間的內容MySql字串
- php 擷取中英文混合字串PHP字串
- Linux下的字串擷取詳解Linux字串
- Shell中的字串擷取介紹字串
- shell 使用陣列及字串擷取陣列字串
- C#常用字串擷取C#字串
- Swift 4.0 字串擷取,拼接,字串富文字顯示Swift字串
- js substr 與 substring 有什麼區別嗎JS
- python程式設計之slice與indices函式用法Python程式設計函式