substring,substr,和slice的区别详解。
1.Substring(x,y) : 輸出一個(gè)字符串,當(dāng)其中只有一個(gè)參數(shù)時(shí),會(huì)輸出從x開始到結(jié)尾的String。
舉例:
var str="hello";
?????? console.log(str.substring(1));
輸出結(jié)果為ello
如果有兩個(gè)參數(shù),則會(huì)輸出從x到y(tǒng)的值,值得注意的時(shí)候,這里的x ,y可以理解成一個(gè)
(x, y]的區(qū)間,即不包含第x個(gè)元素,但包含第y個(gè)元素, x,y均從1開始計(jì)算
舉例:
var str="helloworld";
console.log(str.substring(2,5));
輸出結(jié)果為llo。
另外當(dāng)x<y的情況時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)整x,y的位置并輸出也就是說(shuō)
var str="helloworld";console.log(str.substring(5,2));
這倆個(gè)結(jié)果是一樣的。
如y為負(fù)值,則直接輸出為x之前的字符串
舉例
var str="helloworld";console.log(str.substring(3,-5));
結(jié)果為hel;
?
?
?
2.Substr(x,y): 和substring不同,substr內(nèi)的x,y屬性分別代表元素的起始位置,及輸出的元素長(zhǎng)度。舉例:
var str="helloworld";console.log(str.substr(2,5));
輸出結(jié)果為:llowo
因?yàn)閤,y兩個(gè)參數(shù)的屬性不同,所以相互調(diào)換位置時(shí),并沒(méi)有歧義,而是正常輸出。但當(dāng)y為負(fù)值時(shí),則為空。
舉例:
var str="helloworld";console.log(str.substr(3,-5));
結(jié)果為空
?
?
?
3.slice(x,y) 和substring類似,都是返回一個(gè)(x, y]區(qū)間的字符串,唯一不同需要注意的情況是,如果x>y的情況發(fā)生,則會(huì)產(chǎn)生一個(gè)空,而不會(huì)自動(dòng)調(diào)換位置。舉例:
var str="helloworld";console.log(str.slice(2,5));
輸出結(jié)果為llo
var str="helloworld";console.log(str.slice(5,2));
結(jié)果為空
特別注意,在這里y可以為負(fù)值。輸出的的是y+length之后的長(zhǎng)度,舉例:
var str="helloworld";console.log(str.slice(3,-2));
輸出結(jié)果為 其length值為10,則真實(shí)輸出應(yīng)為
3,(10-2); 結(jié)果為lowor
轉(zhuǎn)載于:https://www.cnblogs.com/yuyufeng/p/5532426.html
總結(jié)
以上是生活随笔為你收集整理的substring,substr,和slice的区别详解。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gradient杂谈
- 下一篇: codevs 2612 最有分解方案 (