Могу я спросить, в чем разница между строковым объектом slice()
и substr()
в JavaScript?
В чем разница между 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 для _ 8_ и _ 9_ для полного описания.
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
Подстрока ()
1. Если start равно stop, возвращается пустая строка. 2. Если стоп не указан, символы извлекаются до конца строки. 3. Если start> stop, то подстрока поменяет местами эти 2 аргумента. 4. Если какой-либо аргумент больше длины строки, любой аргумент будет использовать длину строки. 5.Если какой-либо аргумент меньше 0 или равен NaN, он обрабатывается как 0.
кусочек()
1. Если start равно stop, возвращается пустая строка, как и substring (). 2. Если stop не указан, slice извлекает символы до конца строки, точно так же, как substring (). 3.Если start> stop, slice () НЕ меняет местами два аргумента. 4. Если какой-либо аргумент больше длины строки, любой аргумент будет использовать длину строки, точно так же, как substring ().
Думаю, разница между str.slice()
и str.substr()
- это второй параметр:
.slice()
принимает EndIndex, а .substr()
- длину, как в:
.slice(StartIndex,EndIndex)
и .substr(StartIndex,length).