В чем разница между slice() и substr() в JavaScript?

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

5 ответов


у них разные подписи,.slice() - это:

string.slice(beginIndex, endIndex)

, тогда как .substr() - это:

string.substr(beginIndex, length);

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

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

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


  1. String.slice(begin, end)

    этот метод будет вырезать текст из begin to end char, например.:

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

    этот метод будет вырезать текст из begin to 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

Substring ()

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

slice ()

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


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

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

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