большая часть darndest вещи! следующий код распечатывает 'Лло' вместо ожидаемого 'wo'. я получаю такие неожиданные результаты для нескольких других чисел. что я пропускаю здесь?
alert('helloworld'.substring(5, 2));
Вы путаете substring()
и substr()
: substring()
ожидает два индекса, а не смещение и длину. В вашем случае, индексы 5 и 2, т.е. символы 2..4 будут возвращены, так как более высокий индекс исключается.
Проверьте синтаксис substring
:
substring (from, to)
from Обязательно. Индекс, куда начать добычу. Первый персонаж имеет индекс от 0
до Необязательно. Индекс где остановить добычу . Если опущен, он извлекает остальную часть string
Допускаю, что это немного странно. Сам не знал этого.
То, что вы хотите сделать, это
alert('helloworld'.substring(5, 7));
alert('helloworld'.substring(5, 2));
Приведенный выше код неверен, потому что первое значение является начальной точкой в конечную точку. Например, переместитесь с символа 5, который равен o
и перейдите к char 2, который является l
, так что получите llo
Итак, вы сказали ему вернуться назад.
Вы хотите
alert('helloworld'.substring(5, 7));