самая страшная вещь! следующий код выводит "llo" вместо ожидаемого "wo". я получаю такие неожиданные результаты для нескольких других чисел. что мне здесь не хватает?
alert('helloworld'.substring(5, 2));
самая страшная вещь! следующий код выводит "llo" вместо ожидаемого "wo". я получаю такие неожиданные результаты для нескольких других чисел. что мне здесь не хватает?
alert('helloworld'.substring(5, 2));
Вы вводите в заблуждение substring()
и substr()
: substring()
ожидает два индекса, а не смещение и длина. В вашем случае индексы равны 5 и 2, то есть символы 2..4 будут возвращены по мере исключения более высокого индекса.
У вас есть три варианта в Javascript:
//slice
//syntax: string.slice(start [, stop])
"Good news, everyone!".slice(5,9); // extracts 'news'
//substring
//syntax: string.substring(start [, stop])
"Good news, everyone!".substring(5,9); // extracts 'news'
//substr
//syntax: string.substr(start [, length])
"Good news, everyone!".substr(5,4); // extracts 'news'
Проверьте substring
синтаксис:
подстрока (от, до)
от. Индекс, где начните извлечение. Первый символ имеет индекс 0
до Дополнительно. Индекс , где остановить извлечение. Если опущен, он извлекает остальную часть строка
Я дам вам немного странно. Сам не знал этого.
Что вы хотите сделать, это
alert('helloworld'.substring(5, 7));
alert('helloworld'.substring(5, 2));
Недопустимый код, потому что первое значение является начальной точкой конечной точки. Ег перемещается из char 5, который равен o
, и переходите к char 2, который является l
, и получим llo
Итак, вы сказали ему вернуться назад.
Что вам нужно -
alert('helloworld'.substring(5, 7));
См. синтаксис ниже:
str.substring(indexA, [indexB])
Если indexA > indexB
, функция substring()
действует так, как если бы аргументы были отменены.
Рассмотрите документацию здесь: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
Это то, что я сделал,
var stringValue = 'Welcome to India';
// if you want take get 'India'
// stringValue.substring(startIndex, EndIndex)
stringValue.substring(11, 16); // O/p 'India'