【发布时间】:2011-05-31 14:00:56
【问题描述】:
请问JavaScript中的字符串对象slice()和substr()有什么区别?
【问题讨论】:
标签: javascript slice substr
请问JavaScript中的字符串对象slice()和substr()有什么区别?
【问题讨论】:
标签: javascript slice substr
【讨论】:
String.slice(begin, end)
此方法会将文本从begin 剪切为end 字符,例如:
alert("Hello World!".slice(1, 8)); // ello Wo
String.substr(begin, length)
此方法会将文本从begin 剪切为begin + length char,例如:
alert("Hello World!".substr(1, 8)); // ello Wor
【讨论】:
var str="Hello world!";
document.write(str.substring(3,7)+"<br />");
document.write(str.slice(3,7)+"<br />");
document.write(str.substr(3,7));
结果:
lo w
lo w
lo worl
【讨论】:
我认为str.slice()和str.substr()的区别在于第二个参数:
.slice() 采用 EndIndex,而 .substr() 采用以下长度:
.slice(StartIndex,EndIndex) 和 .substr(StartIndex,length).
【讨论】:
子字符串()
1.如果start等于stop,则返回一个空字符串。 2.如果省略stop,则将字符提取到字符串的末尾。 3.如果开始>停止,则子字符串将交换这两个参数。 4.如果任一参数大于字符串的长度,任一参数都将使用字符串的长度。 5.如果任一参数小于0或为NaN,则将其视为0。
切片()
1.如果start等于stop,则返回一个空字符串,与substring()一模一样。 2.如果stop被省略,slice将字符提取到字符串的末尾,就像substring()一样。 3.如果 start > stop, slice() 不会交换 2 个参数。 4.如果任一参数大于字符串的长度,则任一参数都将使用字符串的长度,与 substring() 完全相同。
【讨论】: