Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непонятки с регэкспом... (https://javascript.ru/forum/misc/8126-neponyatki-s-regehkspom.html)

mexoboy 09.03.2010 17:21

Непонятки с регэкспом...
 
Всем доброго времени суток.
Началось с того, что понадобилась мне произвести поиск по словам в словосочетаниях, причем поиск должен был проходить на границе слова. Вроде ничего сложного:
/\b{search_querry}[^\s]*/gi
Но не тут-то было. С кирилицей такие запросы не прокатывают. Окей, была написана следующая регулярка:
/((?:\s*|^){search_querry}[^\s]*)/gi . Тут-то и начинается фантастика:

var reg = new RegExp('((?:\s+|^)хаб[^\s]*)', 'gi');
console.log(reg.exec('ленинград хабаровск')) //null

//-----

var reg = /((?:\s+|^)хаб[^\s]*)/gi;
console.log(reg.exec('ленинград хабаровск')) // [" хабаровск", " хабаровск"]


Скажите, что в этом мире не так?

Kolyaj 09.03.2010 17:27

Слэш экранировать забыли в строке.
var reg = new RegExp('((?:\\s+|^)хаб[^\\s]*)', 'gi');

mexoboy 09.03.2010 17:47

Упс... А тут-то зачем экранирование... Ну спасибо =) Действительно теперь заработало =)

Kolyaj 09.03.2010 18:09

Цитата:

Сообщение от mexoboy
А тут-то зачем экранирование...

alert(['\s', '\\s']);


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