What is the difference between slice() and substr() in JavaScript?

一笑奈何 提交于 2019-11-30 08:18:34

They have different signatures, .slice() is:

string.slice(beginIndex, endIndex)

Whereas .substr() is:

string.substr(beginIndex, length);

So for example, if we have "1234" and wanted "23", it would be:

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

They also have different behavior for the more-rarely used negative indexes, look at the MDC documentation for .slice() and .substr() for full descriptions.

  1. String.slice(begin, end)

    This method will cut text from begin to end char, eg.:

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

    This method will cut text from begin to begin + length char, eg.:

    alert("Hello World!".substr(1, 8)); // ello Wor
    
Jon
var str="Hello world!";
document.write(str.substring(3,7)+"<br />");
document.write(str.slice(3,7)+"<br />");
document.write(str.substr(3,7));

result:

lo w
lo w
lo worl

Substring()

1.If start equals stop, it returns an empty string. 2.If stop is omitted, it extracts characters to the end of the string. 3.If start > stop, then substring will swap those 2 arguments. 4.If either argument is greater than the string's length, either argument will use the string's length. 5.If either argument is less than 0 or is NaN, it is treated as if it were 0.

slice()

1.If start equals stop, it returns an empty string, exactly like substring(). 2.If stop is omitted, slice extracts chars to the end of the string, exactly like substring(). 3.If start > stop, slice() will NOT swap the 2 arguments. 4.If either argument is greater than the string's length, either argument will use the string's length, exactly like substring().

I think the difference between str.slice() and str.substr() is the second parameter:

.slice() takes EndIndex while .substr() takes length as in:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!