Вход

Просмотр полной версии : Как получить массив слов RegExp'ом?


Mel
18.06.2014, 08:06
Казалось бы ничего сложного.
Есть строка, приходящая по СМС. Её надо разобрать на слова. Естественно, прийти может любой набор: и разделённый точками, и запятыми, и пробелами — кто во что горазд.
Я сначала сделал так:

var InText = 'Некий текст, пришедший в сообщении.';
// Знаки препинания заменяются пробелами
InText = InText.replace(/,.!?;:()]/g, ' ');
// Двойные пробелы заменяются одинарными
InText = InText.replace(/\s+/g," ");
// Массив слов входящего сообщения
var TextArray = InText.split(' ');

Но потом завис. Скажем, «www.javascript.ru» — это одно слово или три? У меня получается три, а как надо?

/\b.+\b/g и /\<.+\>/g дают при match'е и exec'е null. Не могу сообразить, как правильно собрать выражение, чтобы слова определялись не так, как я решил, а так, как они определяются javascript'ом?

Mel
18.06.2014, 08:15
Приношу извинения за размещение темы не в том подфоруме: тупо кликнул на первую выданную гугелем тему.

Aetae
18.06.2014, 08:18
Слова никак не определяются javascript'ом. Для языка это лишь набор бит. Дели на слова так, как считаешь нужным.

P.S. \b работает только с латиницей.

Mel
18.06.2014, 08:35
Я этого и опасался. Спасибо.