substr 方法
var a = '0123456789';
console.log(a.substr(1,3)); // '123'
console.log(a.substr(-3,3)); // '789'
console.log(a.substr(-1)); // '9'
console.log(a.substr(11)); // ''
console.log(a.substr(-11)); // ‘0123456789'
console.log(a.substr(1,-3)); // ''
console.log(a.substr('1a')); // ‘0123456789'
console.log(a.substr('1')); // ‘123456789’
console.log(a.substr('1.3')); // ‘123456789'
console.log(a.substr('1.6')); // ‘123456789’
console.log(a.substr(1,'3')); // ‘123'
console.log(a.substr(1,'3a')); // ‘'
console.log(a.substr(1,’3.3')); // ‘123'
console.log(a.substr(1,’3.6')); // ‘123’
console.log(a.substr(1,-1)); // ‘'
console.log(a.substr(1,11)); // ‘’
console.log(a.substr()) // 0123456789
通過結果分析原理:
1、接受兩個參數(shù),第一個為 所取子字符串的下標位置,第二個為截取字符串的長度
2、開始位置計算方法:
1)通過Number轉為數(shù)字,非數(shù)字則返回0,
2)通過parseInt對數(shù)字取整,
3)如果為負數(shù),則+len
4)如果小于0則返回0
3、長度計算方法:
1)未指定長度,長度=max(0,len-start)
2)通過Number轉為數(shù)字,非數(shù)字則返回0,
3)通過parseInt對數(shù)字取整,
4)如果小于0則返回0
5)如果大于len-start,則返回len-start
4、返回從開始下標,指定長度的子字符串
substring
var a= '0123456789',
a.substring(1,3); // ’12'
a.substring(1,-3); // ‘0’
a.substring(-1,10); // ‘0123456789’
a.substring('1a',3); // 012
a.substring('1',3); // 12
a.substring(1,'3a'); // 0
a.substring(1,'3'); // 12
a.substring(1) ;// 123456789
a.substring(1.3); // 123456789
a.substring(1.6); // 123456789
a.substring(1,3.3); // ’12'
a.substring(1,3.6); // ’12’
a.substring() // 0123456789
通過結果分析原理:
1、接受兩個參數(shù),第一個為所取子字符串的開始下標位置,第二個參數(shù)為截取字符串的結束下標(不包含)
2、首先計算,開始下標位置
1)未指定,則返回0
2)Number轉為數(shù)字,非數(shù)字返回0,
3)parseInt轉為整數(shù)
4)小于0,返回0
3、計算結束下標
1)未指定,則返回len
2)Number轉為數(shù)字,非數(shù)字返回0
3)parseInt轉為整數(shù)
4)小于0,則返回0
5)大于len,則返回len
4、如果結束下標大于開始下標,則交換
5、返回開始下標、結束下標區(qū)間的子字符串
slice
var a= '0123456789',
a.slice(1,-3); // ‘123456’
a.slice(-1,10); // ‘9’
a.slice('1a',3); // 012
a.slice('1',3); // 12
a.slice(1,'3a'); // ‘’
a.slice(1,'-3a'); // ‘’
a.slice(1,'3'); // 12
a.slice(1,’-3'); // 123456
a.slice(1) ;// 123456789
a.slice(1.3); // 123456789
a.slice(1.6); // 123456789
a.slice(1,3.3); // ’12'
a.slice(1,3.6); // ’12’
a.slice() // 0123456789
通過結果分析原理:
1、接受兩個參數(shù),第一個參數(shù)代表開始截取字符串的下標,第二個參數(shù)代表截取字符串的結束下標(不包含)
2、首先計算開始下標:
1)未指定,則返回0
2)Number轉為數(shù)字,非數(shù)字返回0
3)parseInt轉為整數(shù)
4)小于0,則+len
5)小于0,則返回0
3、計算結束下標
1)未指定,則返回len
2)Number轉為數(shù)字,非數(shù)字返回0
3)parseInt轉為整數(shù)
4)小于0,則+len
5)小于0,則返回0
6)大于len,則返回len
4、結束下標<=開始下標,返回空子字符串
5、返回根據(jù)開始下標、結束下標截取的字符串