以下方法都可以從原字符串中截取某段字符串句喜,并返回一個(gè)字符串,且不改變?cè)址?/p>
slice()方法
-
作用
通過給定開始的位置和結(jié)束的位置來截取字符串
-
語(yǔ)法
字符串.slice(beginIndex,endIndex)
-
返回值
返回截取到的字符串
返回值數(shù)據(jù)類型為字符串string
-
參數(shù)
beginIndex
起始值:從該位置開始截取(包含該位置對(duì)應(yīng)的字符)
endIndex
終止值:到該位置結(jié)束截取(不包含該位置對(duì)應(yīng)的字符)
注意:
beginIndex
需要大于endIndex
似袁,否則會(huì)返回空字符串''
- 正常用法
兩個(gè)參數(shù)统屈,起始值對(duì)應(yīng)的字符包括在內(nèi)驱证,而終止值對(duì)應(yīng)的字符不包括在內(nèi)
var s = 'string';
s.slice(1,4) //'tri'
s.slice(-5,-2) //'tri'
- 不設(shè)置參數(shù)
beginIndex
默認(rèn)值為0,endIndex
默認(rèn)值截取到字符串的最后,返回整個(gè)字符串
var s = 'string';
s.slice() //'string'
s.slice(0) //'string'
- 設(shè)置一個(gè)參數(shù)
該參數(shù)會(huì)被視為起始值beginindex
來處理腺办,默認(rèn)截取到字符串的最后
var s = 'string';
s.slice(1) //'tring'
s.slice(0) //'string'
- 設(shè)置參數(shù)為負(fù)數(shù)
從字符串尾部開始往前找焰手,與正數(shù)剛好相反
var s = 'string';
s.slice(-5) //'tring'
s.slice(-6) //'string'
- 參數(shù)正負(fù)號(hào)相同時(shí),設(shè)置參數(shù)起始值大于終止值
返回空字符串''
var s = 'string';
s.slice(4,1) //''
s.slice(-2,-5) //''
-
規(guī)律
其實(shí)負(fù)數(shù)和正數(shù)混合起來不方便判斷怀喉,可以將負(fù)數(shù)加上字符串長(zhǎng)度书妻,轉(zhuǎn)化為正數(shù)即可
s.slice(1,4) //'tri'
s.slice(-5,-2) //'tri'
//它們的結(jié)果完全相同
//-5 + 6 = 1
//-2 + 6 = 4
substring()方法
與slice()方法大致相同,存在一點(diǎn)區(qū)別:
- 如果endIndex小于beginIndex躬拢,那么會(huì)自動(dòng)調(diào)換它們的位置
var s = 'string';
s.substring(1,4) //'tri'
s.substring(4,1) //'tri'
- 如果參數(shù)為負(fù)數(shù)躲履,會(huì)自動(dòng)將其轉(zhuǎn)化為0
var s = 'string';
s.substring(-3); //'string'
s.substring(-1,-2) //''
s.substring(4,-1) //'stri' 相當(dāng)于s.substring(0,4) 首先將-1轉(zhuǎn)換為0,由于0小于4聊闯,又會(huì)調(diào)換一次位置
substr()方法
-
作用
截取一段指定開始位置和個(gè)數(shù)的字符串
-
語(yǔ)法
字符串.substr(start,length)
-
返回值
返回截取到的字符串
返回值數(shù)據(jù)類型為字符串string
-
參數(shù)
start
從該位置開始截取(包含該位置對(duì)應(yīng)的字符)
length
截取字符串的長(zhǎng)度
- 不設(shè)置參數(shù)
默認(rèn)返回整個(gè)字符串
var s = 'JavaScript';
s.substr() //'JavaScript'
- 設(shè)置一個(gè)參數(shù)
該參數(shù)會(huì)被視為起始值start
來處理工猜,默認(rèn)截取到字符串的最后
若第一個(gè)參數(shù)為負(fù)數(shù),則代表從后向前查找
var s = 'JavaScript';
s.substr(0) //'JavaScript'
s.substr(4) //'Script'
s.substr(-6) //'Script'
- 設(shè)置兩個(gè)參數(shù)
var s = 'JavaScript';
s.substr(0,4) //'Java'
s.substr(4,6) //'Script'
- 第二個(gè)參數(shù)為負(fù)數(shù)
會(huì)自動(dòng)將負(fù)數(shù)轉(zhuǎn)化為0菱蔬,這就表示字符串的長(zhǎng)度為0篷帅,會(huì)返回空字符串''
var s = 'JavaScript';
s.substr(1,-1); //''