亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

js中截取字符串的三個(gè)方法 substring()、substr()、slice()

elva / 2718人閱讀

摘要:方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符。一個(gè)非負(fù)的整數(shù),規(guī)定要提取的子串的第一個(gè)字符在中的位置。子串中的字符數(shù)。控制臺(tái)方法可提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。

查看原文可以有更好的排版效果哦

js中有三個(gè)截取字符的方法,分別是substring()、substr()、slice(),平時(shí)我們可能都用到過(guò),但總是會(huì)對(duì)這些方法有點(diǎn)混淆,特別是substring()substr(),連方法名都差不多,下面就具體來(lái)看一下區(qū)別。

相同點(diǎn)

這三個(gè)方法都可以對(duì)字符串進(jìn)行截取,并且返回一個(gè)新的字符串,也就是不會(huì)對(duì)原字符串進(jìn)行修改

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr(1,5)
< "12345"
> a
< "0123456789"  //沒(méi)有發(fā)生改變
不同點(diǎn)

這三個(gè)方法的不同之處在于參數(shù)不同。

substring
substring() 方法用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符。

語(yǔ)法

string.substring(start,stop)

參數(shù)

參數(shù) 描述
start 必需。一個(gè)非負(fù)的整數(shù),規(guī)定要提取的子串的第一個(gè)字符在 string 中的位置。
stop 可選。一個(gè)非負(fù)的整數(shù),比要提取的子串的最后一個(gè)字符在 string 中的位置多 1。如果省略該參數(shù),那么返回的子串會(huì)一直到字符串的結(jié)尾。

說(shuō)明

1.substring() 方法返回的子串包括 start 處的字符,但不包括 stop 處的字符。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(1,5)
< "1234"

2.如果參數(shù) startstop 相等,那么該方法返回的就是一個(gè)空串(即長(zhǎng)度為 0 的字符串)。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(1,1)
< ""

3.如果 startstop 大,那么該方法在提取子串之前會(huì)先交換這兩個(gè)參數(shù)。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(5,1) //=>a.substring(1,5)
< "1234"

4.如果 startstop 有負(fù)數(shù),那么會(huì)把該參數(shù)自動(dòng)轉(zhuǎn)為0,然后繼續(xù)上述規(guī)則。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(5,-1) //=>a.substring(5,0) => a.substring(0,5)
< "1234"

5.如果 startstop小數(shù)(負(fù)數(shù)直接進(jìn)行第4條),那么會(huì)把該參數(shù)向下取整,然后繼續(xù)上述規(guī)則。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(5,2.5) //=>a.substring(5,2) => a.substring(2,5)
< "234"

6.如果 startstop 有字符串,那么會(huì)先進(jìn)行parseInt(),如果轉(zhuǎn)換結(jié)果為NaN,那么就轉(zhuǎn)換為0,其余情況繼續(xù)上述規(guī)則。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substring(5,"2.5") // =>a.substring(5,2) => a.substring(2,5)
< "234"
> a.substring(5,"ss") // =>a.substring(5,2) =>a.substring(5,0) => a.substring(2,5)
< "234"

其他情況就沒(méi)有一一測(cè)試了,當(dāng)然正常情況下盡量不要這么干,畢竟語(yǔ)法上已經(jīng)規(guī)定了是整數(shù)。

substr
substr() 方法可在字符串中抽取從 start 下標(biāo)開(kāi)始的指定數(shù)目的字符。

語(yǔ)法

string.substr(start,length)
重要事項(xiàng):ECMAscript 沒(méi)有對(duì)該方法進(jìn)行標(biāo)準(zhǔn)化,因此反對(duì)使用它。

參數(shù)

參數(shù) 描述
start 必需。要抽取的子串的起始下標(biāo)。必須是數(shù)值。如果是負(fù)數(shù),那么該參數(shù)聲明從字符串的尾部開(kāi)始算起的位置。也就是說(shuō),-1 指字符串中最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。
length 可選。子串中的字符數(shù)。必須是數(shù)值。如果省略了該參數(shù),那么返回從 string 的開(kāi)始位置到結(jié)尾的字串。

說(shuō)明

該方法與substring()最大的區(qū)別在于第二個(gè)參數(shù)是你需要截取字符串的長(zhǎng)度,而不是位置。

1.substr() 方法返回的子串從 start 處的字符開(kāi)始(包括)往后截取length長(zhǎng)度,如果超過(guò)最末端就到最末端結(jié)束。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr(1,5)
< "12345"
> a.substr(1,15) //只會(huì)到最末端,多了沒(méi)用
< "123456789"

2.start可以取負(fù)值,表示從字符串尾部往頭部開(kāi)始數(shù)(從右到左,注意是從1開(kāi)始,比如-1 指字符串中最后一個(gè)字符),但是截取長(zhǎng)度還是從左到右,如果超過(guò)最末端就到最末端結(jié)束。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr(-4,2) //-4表示從右開(kāi)始數(shù)第4個(gè),就是"6",然后取2個(gè)長(zhǎng)度的字符串,就是"67"
< "67"

3.如果length負(fù)值,那么會(huì)直接當(dāng)成0處理,最終返回""

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr(4,-2) // => a.substr(4,0)
< ""

4.如果start或者length為小數(shù),那么會(huì)截取小數(shù)部分。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr(1.2,5.2) // => a.substr(1,5)
< "12345"

5.如果 startlength 有字符串,那么會(huì)先進(jìn)行parseInt(),如果轉(zhuǎn)換結(jié)果為NaN,那么就轉(zhuǎn)換為0,其余情況繼續(xù)上述規(guī)則。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.substr("aa","5") // => a.substr(0,5)
< "01234"
slice
slice() 方法可提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。

語(yǔ)法

string.slice(start,end)

參數(shù)

參數(shù) 描述
start 必須。要抽取的片斷的起始下標(biāo)。如果是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開(kāi)始算起的位置。也就是說(shuō),-1 指字符串的最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。
end 可選。緊接著要抽取的片段的結(jié)尾的下標(biāo)。若未指定此參數(shù),則要提取的子串包括 start 到原字符串結(jié)尾的字符串。如果該參數(shù)是負(fù)數(shù),那么它規(guī)定的是從字符串的尾部開(kāi)始算起的位置。

該方法的兩個(gè)參數(shù)均為位置坐標(biāo),和subtring比較像,區(qū)別就是該方法支持負(fù)數(shù),并且不會(huì)交換位置,始終是從startend,如果該區(qū)間不存在,那么返回""。

1.slice() 方法返回的子串包括 start 處的字符,但不包括 end 處的字符。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.slice(1,5)
< "1234"

2.當(dāng)start或者end負(fù)值時(shí),定位方式和substr一直,從右往左數(shù),從1開(kāi)始。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.slice(1,-1)//起始點(diǎn)從第1(包括)開(kāi)始,結(jié)束點(diǎn)為從右往左數(shù)第1個(gè)(不包括)
< "12345678"

2.startend的順序始終是從左到右,如果最終start的位置在end的右邊,那么返回""。

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.slice(2,1)//2所在的位置是"2",1所在的位置是"1",從2=>1,方向相反,返回為空
< ""
> a.slice(-2,1)//-2所在的位置是"8",1所在的位置是"1",從8=>1,方向相反,返回為空
< ""
> a.slice(-2,-1)//-2所在的位置是"8",-1所在的位置是"9",從8=>9,方向正常,返回為"8"
< "8"

3.其他情況和substring處理方式一致

//chrome控制臺(tái)
> var a = "0123456789"
< undefined
> a.slice("xx","5.5")// => a.slice(0,5)
< "01234"
小節(jié)

從上面測(cè)試得出結(jié)論,substring不支持負(fù)值,其他兩種方式均支持負(fù)數(shù)表示,并且是從右邊第一位開(kāi)始計(jì)數(shù)。
substr的第二個(gè)參數(shù)是長(zhǎng)度,這是和其他兩種方式最大的不同之處,slice的方向性比較強(qiáng),永遠(yuǎn)是從start=>end對(duì)應(yīng)左=>右。

以上結(jié)論均在最新谷歌瀏覽器上測(cè)試,IE和火狐未測(cè)試。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/97738.html

相關(guān)文章

  • js substr,slice,substring 用法與區(qū)別

    摘要:交換參數(shù)位置,小的在前。的如果為負(fù)數(shù),同樣從尾部算起,如果其絕對(duì)值超過(guò)原字符串長(zhǎng)度或者為,返回空字符串。會(huì)取和中較小的值為二者相等返回空字符串,任何一個(gè)參數(shù)為負(fù)數(shù)被替換為即該值會(huì)成為參數(shù)。第二個(gè)為負(fù)值是始終返回控制符串。 slice,substring,substr三個(gè)函數(shù)都是截取字符串。 先看方法的簽名 slice(start, end); // 參數(shù)可為負(fù)數(shù)。第二個(gè)參數(shù)是指定結(jié)束位...

    Lin_YT 評(píng)論0 收藏0
  • 符串截取

    摘要:在該索引以為基數(shù)處結(jié)束提取字符串。非負(fù)數(shù)可選一個(gè)到字符串長(zhǎng)度之間的整數(shù)。非負(fù)數(shù)若和相等,則返回一個(gè)空字符串。輸出此外對(duì)于三者的執(zhí)行效率,網(wǎng)上有個(gè)對(duì)一個(gè)長(zhǎng)度為的字符串做截取測(cè)試,地址測(cè)試結(jié)果如圖所示文章首發(fā)于 在js中,需要經(jīng)常處理字符串的問(wèn)題,如果需要截取字符串的話,我們會(huì)選擇slice、substr以及substring,下面就截取字符串的問(wèn)題來(lái)細(xì)說(shuō)一下。 slice slice(s...

    Cruise_Chan 評(píng)論0 收藏0
  • 符串方法總結(jié)

    摘要:傳入兩個(gè)字符串如其實(shí)位置大于結(jié)束位置,返回空字符串若傳入的有負(fù)數(shù),則進(jìn)行字符串長(zhǎng)度的相加操作,在進(jìn)行正數(shù)的參數(shù)進(jìn)行操作。 String的操作在平時(shí)開(kāi)發(fā)中經(jīng)常操作現(xiàn)在對(duì)字符串中的方法進(jìn)行一些歸納:1、訪問(wèn)字符串中指定位置的字符:charAt() charCodeAt()都接受一個(gè)參數(shù) charAt():返回的是指定位置的字符 charCodeAt():返回指定位置字符的...

    xioqua 評(píng)論0 收藏0
  • js和es6符串方法總結(jié)

    摘要:截取字符串用法用數(shù)學(xué)表達(dá)式表達(dá)區(qū)間的話就是截取和上面結(jié)果一樣會(huì)自動(dòng)進(jìn)行掉換,但是和必須要都為正數(shù)。 1.substring(start,end) -> 截取字符串 用法: 1.substring(start,end) -> 用數(shù)學(xué)表達(dá)式表達(dá)區(qū)間的話就是截取[start,end);2.substring(start,end),end > start -> 和上面結(jié)果一樣,會(huì)自動(dòng)進(jìn)行掉換...

    godruoyi 評(píng)論0 收藏0
  • js基礎(chǔ) 數(shù)組與符串

    摘要:最近在梳理的基礎(chǔ),首先從數(shù)組和字符串開(kāi)始。如果超出有效范圍與字符串長(zhǎng)度減一的索引值返回空字符串返回對(duì)象內(nèi)第一次出現(xiàn)子字符串位置。將字符串以參數(shù)分割為數(shù)組方法返回一個(gè)字符串,該字符串中的字母被轉(zhuǎn)換成小寫(xiě)。 最近在梳理js的基礎(chǔ),首先從數(shù)組和字符串開(kāi)始。 string 常用方法: 1.substring(start開(kāi)始位置的索引,end結(jié)束位置索引) 截取的位置不包含結(jié)束位置的字符,只寫(xiě)一...

    liaosilzu2007 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<