Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2010, 20:08
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Поделить строку на слова регэкспами
В общем, нужно поделить строку на слова. Например,
arrStr="word1 word2".split(/\s+/);
Но тут возникает шняга)) Если строка выглядит так: "word1 word2 " (т.е. в конце пробелы есть), то split последним элементом массива вернёт undefined. В обычных ситуациях это не очень страшно, но вот если, например, выводить значения массива с помощью алерта... Можно, конечно, в цикле делать проверку вроде if(arrStr[i]), но это крайний вариант. Как на самих регэкспах исправить эту штуку?
Ответить с цитированием
  #2 (permalink)  
Старый 11.05.2010, 21:33
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от trikadin Посмотреть сообщение
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]);
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2010, 21:39
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Спасибо. А то сам я с регулярными ещё не очень дружу...)
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2010, 18:07
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Gozar, имхо лучше так:
alert('  as sd df  '.match(/(\S+)/g))
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2010, 22:47
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

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


Опции темы Искать в теме
Искать в теме:

Расширенный поиск