亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

深入淺析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性

2024-05-06 16:26:29
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript字符串操作方法 slice、substr、substring及其IE兼容性 的相關資料,需要的朋友可以參考下
 

在截取字符串時常常會用到substr()、substring()、slice()方法,有時混淆之間的用法,故總結下。

閱讀目錄
•slice()
•substring()
•substr()
•總結  

slice()

定義:接受一個或者兩個參數,第一個參數指定子字符串的開始位置。第二個參數表示子字符串的結束位置(不包括結束位置的那個字符),如果沒有傳遞第二個參數,則將字符串的長度作為結束位置。

1、傳遞參數為正值情況:

var str ="helloWorld";// 一個參數,則將字符串長度作為結束位置alert(str.slice(3)); // "loWorld"// 兩個參數,7位置上的字符為"r",但不包括結束位置的字符alert(str.slice(3,7)); // "loWo" 

2、傳遞參數為負值的情況:

slice()方法會將傳入的負值與字符串長度相加。 var str ="helloWorld";// 一個參數,與字符串長度相加即為slice(7)alert(str.slice(-3)); // "rld"// 兩個參數,與字符串長度相加即為slice(3,6)alert(str.slice(3,-4)); // "loW" 

3、第二個參數比第一個參數值小的情況:

slice()方法傳入的第二個參數比第一個參數小的話,則返回空字符串。

var str ="helloWorld";alert(str.slice(5,3)); // "" 

4、IE兼容性

在IE8瀏覽器測試下,沒啥問題,行為與現代瀏覽器一致。

substring()

定義:接受一個或者兩個參數,第一個參數指定子字符串的開始位置。第二個參數表示子字符串的結束位置(不包括結束位置的那個字符),如果沒有傳遞第二個參數,則將字符串的長度作為結束位置。

1、傳遞參數為正值情況:與slice()方法行為相同的

var str ="helloWorld";// 一個參數,則將字符串長度作為結束位置alert(str.substring(3)); // "loWorld"// 兩個參數,7位置上的字符為"r",但不包括結束位置的字符alert(str.substring(3,7)); // "loWo" 

2、傳遞參數為負值的情況:

substring()方法會把所有負值參數轉換為0。來看下例子:

var str ="helloWorld";// 兩個參數,-4會轉換為0,相當于substring(3,0) -->即為 substring(0,3)alert(str.substring(3,-4)); // "hel" 

substring()方法會將較小的數作為開始位置,將較大的數作為結束位置。如上面的例子substring(3,0) 與substring(0,3)是一樣效果的。

4、IE兼容性

在IE8瀏覽器測試下,沒啥問題,行為與現代瀏覽器一致。

substr()

定義:接受一個或者兩個參數,第一個參數指定子字符串的開始位置。第二個參數跟之前的方法有些區別,表示返回的字符個數。如果沒有傳遞第二個參數,則將字符串的長度作為結束位置。來看例子:

1、傳遞參數為正值情況:

var str ="helloWorld";// 一個參數,則將字符串長度作為結束位置alert(str.substr(3)); // "loWorld"// 兩個參數,從位置3開始截取后面7個字符alert(str.substr(3,7)); // "loWorld" 

2、傳遞參數為負值的情況:

substr()方法會將負的第一個參數加上字符串的長度,而將負的第二個參數轉換為0。

var str ="helloWorld";// 將第一個負的參數加上字符串的長度--->//即為:substr(7,5) ,從位置7開始向后截取5個字符alert(str.substr(-3,5)); // "rld"// 將第二個參數轉換為0// 即為:substr(3,0),即從位置3截取0個字符串,則返回空alert(str.substr(3,-2)); // "" 

3、IE兼容性

substr()方法傳遞負值的情況下會存在問題,會返回原始的字符串。IE9修復了此問題。

總結

在傳遞正值參數情況下,slice() 和 substring () 行為是一致的,substr()方法在第二個參數上會容易混淆

在傳遞負值參數情況下,slice() 方法是通過字符串長度相加,符合一般思維,substring()第二個參數轉換為0會容易出問題,起始位置會容易變更,substr() 方法負值情況下會出現IE兼容性問題。

綜上,小弟一般推薦使用slice()方法。

下面給大家介紹slice,substr和substring的區別

首先,他們都接收兩個參數,slice和substring接收的是起始位置和結束位置(不包括結束位置),而substr接收的則是起始位置和所要返回的字符串長度。直接看下面例子:

 var test = 'hello world';  alert(test.slice(,));    //o w  alert(test.substring(,));   //o w  alert(test.substr(,));   //o world 

這里有個需要注意的地方就是:substring是以兩個參數中較小一個作為起始位置,較大的參數作為結束位置。

如:

alert(test.substring(7,4));   //o w 

接著,當接收的參數是負數時,slice會將它字符串的長度與對應的負數相加,結果作為參數;substr則僅僅是將第一個參數與字符串長度相加后的結果作為第一個參數;substring則干脆將負參數都直接轉換為0。測試代碼如下:

var test = 'hello world';  alert(test.slice(-));   //rld  alert(test.substring(-));  //hello world  alert(test.substr(-));  //rld  alert(test.slice(,-));  //lo w  alert(test.substring(,-)); //hel  alert(test.substr(,-));  //空字符串 

 注意:IE對substr接收負值的處理有錯,它會返回原始字符串。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品在线视频| 日韩欧美在线视频日韩欧美在线视频| 久久国产精品久久国产精品| 欧美重口另类videos人妖| 91精品久久久久久久久久久久久久| 欧美午夜激情视频| 91精品在线国产| 91精品久久久久久久久久| 成人午夜激情免费视频| 91精品啪aⅴ在线观看国产| 欧美成人在线网站| 狠狠久久五月精品中文字幕| 亚洲精品黄网在线观看| 亚洲а∨天堂久久精品喷水| 久久久久久久久中文字幕| 国产69久久精品成人| 欧美精品久久久久久久久| 亚洲高清免费观看高清完整版| 亚洲第一区中文字幕| 久久久人成影片一区二区三区观看| 欧美夫妻性生活xx| 久久久久久久网站| 欧美色播在线播放| 亚洲欧美一区二区三区四区| 中文字幕日韩av综合精品| 亚洲嫩模很污视频| 国产精品稀缺呦系列在线| 日韩高清av一区二区三区| 国产精品亚洲片夜色在线| 色妞一区二区三区| 亚洲激情在线视频| 国语自产偷拍精品视频偷| 久久躁狠狠躁夜夜爽| 成人xvideos免费视频| 91精品国产高清久久久久久久久| 国产精品偷伦免费视频观看的| 欧美一级大片在线免费观看| 8090成年在线看片午夜| 亚洲精品一区二区久| 精品无人区太爽高潮在线播放| 欧美成人精品在线观看| 精品精品国产国产自在线| 欧美成人免费va影院高清| 欧美有码在线观看视频| 亚洲精品第一国产综合精品| 欧美区在线播放| 91精品久久久久久久久久另类| 亚洲精品福利免费在线观看| 亚洲精品视频免费在线观看| 精品国产乱码久久久久久虫虫漫画| 国产午夜精品全部视频在线播放| 久久中文字幕在线视频| 国产欧美日韩中文字幕在线| 7m第一福利500精品视频| 欧美性高潮在线| 国产精品久久久久9999| 欧美最猛黑人xxxx黑人猛叫黄| 日韩美女av在线免费观看| 亚洲精品资源美女情侣酒店| 中国人与牲禽动交精品| 国产女精品视频网站免费| 亚洲男人第一av网站| 91麻豆桃色免费看| 26uuu另类亚洲欧美日本老年| 欧美午夜丰满在线18影院| 国产精品视频资源| 成人一区二区电影| 国产精品99久久久久久久久久久久| 亚洲国产精品成人av| 91精品国产综合久久男男| 欧美国产日韩在线| 日韩日本欧美亚洲| 国产精品一区二区av影院萌芽| 成人福利视频在线观看| 久久久久久国产| 日韩一区二区三区在线播放| 亚洲第一国产精品| 一区二区三区国产在线观看| 国产大片精品免费永久看nba| 午夜精品久久久久久久白皮肤| 91中文精品字幕在线视频| 亚洲欧美国产精品va在线观看| 18一19gay欧美视频网站| 日韩欧美一区二区三区| 亚洲香蕉av在线一区二区三区| 欧美激情网站在线观看| 久久久久久久久久久人体| 国产精品视频免费在线| 国产精品永久免费在线| 久久久最新网址| 亚洲欧美国产一区二区三区| www.欧美三级电影.com| 久久成人在线视频| 日韩av最新在线| 国产精品欧美风情| 疯狂蹂躏欧美一区二区精品| 国产69精品久久久久9| 日韩在线视频线视频免费网站| 美日韩精品视频免费看| 欧美中文字幕在线播放| 91精品久久久久久| 亚洲一区免费网站| 久久久久久国产精品三级玉女聊斋| 欧美激情精品久久久久久免费印度| 国内精品久久久| 国产精品久久久久7777婷婷| 欧美大片在线免费观看| 国产精品一久久香蕉国产线看观看| 在线播放日韩av| 国产91精品视频在线观看| 精品久久久久久久久久国产| 日韩视频欧美视频| 麻豆一区二区在线观看| 欧美大学生性色视频| 97视频在线观看网址| 成人激情在线观看| 一区二区三区国产视频| 欧美一区二粉嫩精品国产一线天| 亚洲亚裔videos黑人hd| 亚洲а∨天堂久久精品9966| 国产日本欧美一区二区三区在线| 国产一区欧美二区三区| 亚洲视频在线看| 国精产品一区一区三区有限在线| 欧美黄网免费在线观看| 91精品久久久久久久久久久久久| 欧美精品一区在线播放| 亚洲丝袜一区在线| 成人免费网站在线观看| 深夜福利亚洲导航| 欧美精品成人在线| 欧美高清自拍一区| 92国产精品视频| 538国产精品视频一区二区| 欧美日韩美女在线| 亚洲大胆人体av| 日韩精品福利网站| 欧美—级a级欧美特级ar全黄| 亚洲成人网在线观看| 不卡伊人av在线播放| 日韩av在线不卡| 91亚洲精华国产精华| 亚洲精品小视频| 日韩美女免费线视频| 欧美日韩一区二区免费在线观看| 国产视频精品在线| 日韩电影免费在线观看中文字幕| 欧美最猛性xxxxx(亚洲精品)| 97在线视频精品| 日本欧美爱爱爱| 亚洲最新av在线| 日韩av综合中文字幕| xvideos亚洲人网站| 日韩免费中文字幕| 成人免费xxxxx在线观看| 日韩精品在线观| 裸体女人亚洲精品一区| 日本国产精品视频| 81精品国产乱码久久久久久| 日韩欧美亚洲国产一区| 亚洲天堂久久av| 久久夜色精品亚洲噜噜国产mv| 91豆花精品一区| 欧美洲成人男女午夜视频|