麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

常常會用到的截取字符串substr()、substring()、slice()方法詳解

2024-05-06 16:26:29
字體:
來源:轉載
供稿:網友
javascript中給我們提供三個截取字符串的方法,分別是: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()方法。



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

圖片精選

主站蜘蛛池模板: 欧美一级黄色免费 | 成年免费在线视频 | 噜噜在线视频 | 国产毛片aaa一区二区三区视频 | 成年人在线视频观看 | 国产精品久久999 | 一区二区三区国产视频 | 爱射av| 精品在线观看一区 | 亚州综合 | 一本在线高清码电影 | 国产美女爽到喷白浆的 | 亚洲午夜影院在线观看 | 亚洲成人在线免费观看 | 在线观看中文字幕av | 免费放黄网站在线播放 | 色中色综合网 | 视频一区二区三区在线播放 | 毛片毛片免费看 | 91精品国产日韩91久久久久久360 | 国产一级在线看 | 美女一级毛片 | 草莓视频在线导航 | 91网站免费在线观看 | 蜜桃成品人免费视频 | 欧美激情视频一区二区免费 | 91 在线视频观看 | 黄色网址在线免费播放 | 久久久久亚洲美女啪啪 | 欧美.com| 国产一级一区二区 | 色羞羞 | 国产精品久久久久久影视 | 久久17 | 日韩大片在线永久观看视频网站免费 | 久久国产一 | av中文在线观看 | 制服丝袜日日夜夜 | 亚洲第一成人在线观看 | 国产精品99久久久久久宅女 | 国产精品色综合 |