В чем разница между slice () и substr () в JavaScript? - PullRequest
17 голосов
/ 28 декабря 2010

Можно спросить, в чем разница между строковым объектом slice() и substr() в JavaScript?

Ответы [ 5 ]

34 голосов
/ 28 декабря 2010

Они имеют разные подписи, .slice() это:

string.slice(beginIndex, endIndex)

Принимая во внимание, что .substr() составляет:

string.substr(beginIndex, length);

Так, например, если мы имеем "1234" и хотим "23", это будет:

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

Они также имеют различное поведение для более редко используемых отрицательных индексов, посмотрите документацию MDC для .slice() и .substr() для полной информации описание.

5 голосов
/ 28 декабря 2010
  1. String.slice(begin, end)

    Этот метод обрезает текст с begin до end char, например:

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

    Этот метод сокращает текст с begin до begin + length char, например ::

    alert("Hello World!".substr(1, 8)); // ello Wor
    
2 голосов
/ 19 июля 2012
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
1 голос
/ 15 июля 2014

Substring ()

1. Если начало равно стопу, возвращается пустая строка.2. Если stop не указан, он извлекает символы до конца строки.3. Если start> stop, то подстрока поменяет эти 2 аргумента.4.Если один из аргументов больше длины строки, любой из аргументов будет использовать длину строки.5.Если аргумент меньше 0 или равен NaN, он обрабатывается так, как если бы он был 0.

slice ()

1. Если start равен stop, он возвращает пустую строку,точно так же, как подстрока ().2. Если stop не указан, slice извлекает символы до конца строки, точно так же, как substring ().3. Если start> stop, slice () НЕ поменяет местами 2 аргумента.4.Если один из аргументов больше длины строки, любой из аргументов будет использовать длину строки, точно так же как substring ().

0 голосов
/ 27 февраля 2014

Я думаю, что разница между str.slice() и str.substr() является вторым параметром:

.slice() принимает EndIndex, в то время как .substr() принимает длину как:

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

...