17

slice()我能问一下字符串对象和substr()JavaScript有什么区别吗?

4

5 回答 5

34

他们有不同的签名,.slice()是:

string.slice(beginIndex, endIndex)

鉴于.substr()

string.substr(beginIndex, length);

因此,例如,如果我们有"1234"并且想要"23",它将是:

"1234".slice(1,3)
//or...
"1234".substr(1,2)

对于更罕见的负索引,它们也有不同的行为,请查看 MDC 文档以.slice()获取.substr()完整描述。

于 2010-12-28T13:13:32.773 回答
5
  1. String.slice(begin, end)

    此方法会将文本从 char 剪切beginend例如:

    alert("Hello World!".slice(1, 8)); // ello Wo
    
  2. String.substr(begin, length)

    begin此方法会将文本从begin+字符剪切length,例如:

    alert("Hello World!".substr(1, 8)); // ello Wor
    
于 2010-12-28T13:14:21.780 回答
2
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
于 2012-07-19T07:54:22.040 回答
1

子串()

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() 完全相同。

于 2014-07-15T09:06:48.227 回答
0

str.slice()我认为和之间的区别str.substr()是第二个参数:

.slice()取 EndIndex 而.substr()取长度,如下所示:

.slice(StartIndex,EndIndex).substr(StartIndex,length).

于 2014-02-27T05:22:42.643 回答