Найти второй пробел
Подскажите, как найти второй пробел в строке?
let str = 'exit test some'; let value; value = str.indexOf(' '); |
Вариант не очень хороший, но вариант:
let str = 'exit test some'; let value = str.indexOf(' ', 1 + str.indexOf(' ')); function indexOf(haystack,needle,number){ var i=0,index=-1; do{ index=haystack.indexOf(needle,1+index); } while(index>-1 && ++i<(number||1)); return index; }; var str = 'exit test some'; alert(indexOf(str,' ',2)); |
Это вы сделали что-то вроде добавления двух пробелов?
|
str.match(/\s/g)[1] |
marc, сложно объяснить, почитайте:
https://javascript.ru/string/indexof |
Nexus,
Там просто просчитано вручную, а мне надо как-то без подсчёта вручную |
laimas, ваш вариант вернет не индекс символа, но сам символ.
Глупое занятие, при условии того, что символ извлекается определенный. Т.е. результат заведомо известный. |
marc, это без подсчета вручную.
|
Nexus,
В вашем варианте - да, а в статье по-моему вручную просчитывается. |
marc, это описание работы метода с примерами.
Я дал вам это ссылку, чтобы вы поняли что я сделал. |
Цитата:
|
marc,
"use strict" let myRe = /\s\S+(?=\s)/g; let str = 'exit test some'; myRe.exec(str); let value = myRe.lastIndex; alert(value); |
laimas, вопрос не мой, но занятие-то бесполезное получается, если нужно получить сам пробел :)
|
Цитата:
str.split(' ')[2] Каков вопрос таков и ответ. |
Цитата:
|
Цитата:
|
laimas, тот, кому ответ больше нужен )
|
Не очень элегантно, но - массив индексов всех пробелов в строке.
Выбирай нужный. var str = 'exit test some space end', spaces = [], i = -1; do { i++; i = str.indexOf(' ', i); if(i >= 0) spaces.push(i); } while (i >= 0) alert(spaces); |
Часовой пояс GMT +3, время: 04:29. |