Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поделить строку на слова регэкспами (https://javascript.ru/forum/events/9343-podelit-stroku-na-slova-regehkspami.html)

trikadin 11.05.2010 21:08

Поделить строку на слова регэкспами
 
В общем, нужно поделить строку на слова. Например,
arrStr="word1 word2".split(/\s+/);
Но тут возникает шняга)) Если строка выглядит так: "word1 word2 " (т.е. в конце пробелы есть), то split последним элементом массива вернёт undefined. В обычных ситуациях это не очень страшно, но вот если, например, выводить значения массива с помощью алерта... Можно, конечно, в цикле делать проверку вроде if(arrStr[i]), но это крайний вариант. Как на самих регэкспах исправить эту штуку?

Gozar 11.05.2010 22:33

Цитата:

Сообщение от trikadin (Сообщение 54921)
arrStr="word1 word2".split(/\s+/);
Но тут возникает шняга)) Если строка выглядит так: "word1 word2 " (т.е. в конце пробелы есть), то split последним элементом массива вернёт undefined. В обычных ситуациях это не очень страшно, но вот если, например, выводить значения массива с помощью алерта... Можно, конечно, в цикле делать проверку вроде if(arrStr[i]), но это крайний вариант. Как на самих регэкспах исправить эту штуку?

var arrStr = "word1 word2 ".replace(/(^\s+)|(\s+$)/g, "").split(/\s+/);
alert(arrStr.length);
alert([arrStr]);

trikadin 11.05.2010 22:39

Спасибо. А то сам я с регулярными ещё не очень дружу...)

e1f 12.05.2010 19:07

Gozar, имхо лучше так:
alert('  as sd df  '.match(/(\S+)/g))

trikadin 12.05.2010 23:47

В принципе, вариант Gozar'а меня вполне устроил.


Часовой пояс GMT +3, время: 08:18.