Показать сообщение отдельно
  #5 (permalink)  
Старый 21.03.2015, 03:54
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от Shasoft Посмотреть сообщение
var re0 = new RegExp("[\\s|,|.]"+n, "i");
var re1 = new RegExp("^"+n, "i");
Убрал 'g' из параметров. Вроде работает. Хотел в один RegExp объединить, но знаний не хватает.
Я тоже не силён в регулярках, но попробовал бы так:
var re = new RegExp("^|[\\s|,|.]"+n, "i");
--
upd.
C утречка глянул ещё разок. Поправка:
var re = new RegExp("(^|[\\s|,|.])"+n, "i");
--
upd 2
Мне сейчас регулярки как раз актуальны (делаю формы для редактирования с валидацией), а посему глянул доки.
Всё может оказаться попроще. Цитата из мануала:
Код:
    \b   :   Позиция между символом ASCII и не символом ASCII (граница слова)
итого имеем две простых версии:
1)
var re = new RegExp("\b"+n, "i");
2)
var re = new RegExp("(^|\b)"+n, "i");

Первый вариант будет/не будет работать в зависимости от того, считается ли начало строки границей слова, второй вроде по любому должон работать

Последний раз редактировалось MetaDriver, 21.03.2015 в 18:03.
Ответить с цитированием