JS提供三個(gè)截取字符串的方法,分別是:slice(),substring()和substr(),它們都可以接受一個(gè)或兩個(gè)參數(shù):
var stmp = "rcinn.cn";
使用一個(gè)參數(shù)alert(stmp.slice(3));//從第4個(gè)字符開(kāi)始,截取到最后個(gè)字符;返回"nn.cn"
alert(stmp.substring(3));//從第4個(gè)字符開(kāi)始,截取到最后個(gè)字符;返回"nn.cn"
使用兩個(gè)參數(shù)alert(stmp.slice(1,5))//從第2個(gè)字符開(kāi)始,到第5個(gè)字符;返回"cinn"
alert(stmp.substring(1,5));//從第2個(gè)字符開(kāi)始,到第5個(gè)字符;返回"cinn"
如果只用一個(gè)參數(shù)并且為0的話,那么返回整個(gè)參數(shù)alert(stmp.slice(0));//返回整個(gè)字符串
alert(stmp.substring(0));//返回整個(gè)字符串
返回第一個(gè)字符alert(stmp.slice(0,1));//返回"r"
alert(stmp.substring(0,1));//返回"r"
//在上面的例子中我們可以看出slice()和substring()的用法是相同的,返回的值也是一樣的,但當(dāng)參數(shù)為負(fù)數(shù)時(shí),他們的返回值卻不一樣,看下面的例子
alert(stmp.slice(2,-5));//返回"i"
alert(stmp.substring(2,-5));//返回"rc"
//從上面兩個(gè)例子可以看出slice(2,-5)實(shí)際上是slice(2,3),負(fù)5加上字符串長(zhǎng)度8轉(zhuǎn)換成正3(若第一位數(shù)字等于或大于第二位數(shù)字(slice()注意:這里第二位數(shù)字如果是負(fù)數(shù)是加完字符串長(zhǎng)度后的數(shù)字,而不是顯示的數(shù)字例:length=11,(7,-6),-6+11=5第二位小于第一位),則返回空字符串);而substring(2,-5)實(shí)際上是substring(2,0),負(fù)數(shù)轉(zhuǎn)換為0,substring總是把較小的數(shù)作為起始位置。
alert(stmp.substring(1,5))//從第2個(gè)字符開(kāi)始,到第5個(gè)字符;返回"cinn"
alert(stmp.substr(1,5));//從第2個(gè)字符開(kāi)始,截取5個(gè)字符;返回"cinn."
var phone = 15989012100;
phone.slice(-6) 取倒數(shù)后6位(第二個(gè)參數(shù)不用寫0),return ‘012100 ';
phone.slice(-6,-4) 取倒數(shù)后4位到倒數(shù)6位,(-6+11,-4+11)=(5,7);
//?日期比較大小?當(dāng)日期每個(gè)月都小1時(shí) var?nowdate?=?new?Date(); item?=?2016-7-16; temp?=?item.split('-'); if?(temp[0]?!=?curYear?||?temp[1]?!=?curMonth)?{ ????return; } temp[1]?=?parseInt(temp[1])?+?1; date?=?new?Date(temp.join('-')); if(date>=nowdate){ 執(zhí)行A; }else{ 執(zhí)行B; }
替換指定字符串后的字母
var?abc?=?'adadada=ss'; var?j?=?abc.substring(abc.indexOf('=')+1,abc.length); var?dsd?=abc.replace(j,'haha');??-->???dsd?=?'adadada=haha'
以上所述是小編給大家介紹的JS截取字符串的三種方法,希望對(duì)大家有所幫助。在此也非常感謝大家對(duì)好二三四網(wǎng)站的支持!
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?