Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 06.07.2015
Сообщений: 27
1

Переменная в регулярном выражении и класс \b

30.08.2017, 00:14. Показов 2707. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста синтаксис для использования переменной в регулярном выражении и класса \b для границы слова.
Я понял, как переменную использовать с флагом и без. А как переменную и класс записать? В интернете не смог ничего найти именно с классом.
Например хочу найти в строчке "ой все, хватит" частицу ой.
Javascript
1
2
3
Var str = "ой все хватит"
var a="ой"
Return str.match(a,"i") //пусть будет. С флагом i.
А как с классом \b? Например захочется мне найти именно частицу ой, а не сочетание букв в строке "какОЙ герОЙ. Ой ой ой"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2017, 00:14
Ответы с готовыми решениями:

Replace, переменная в регулярном выражении
Здравствуйте, помогите разобраться. Для примера: var string = 'test222'; var...

Пробел в регулярном выражении
Здравствуйте. В регулярках не шарю абсолютно. Есть такая строка: input.value =...

Проверка цифр в регулярном выражении
Добрый день! В текстовом поле должны вводиться от 1 до 3 цифр. причем первая цифра не 0. Если...

Разобраться в регулярном выражении
"(?<=<img+?src=\" )+" вон оно я не могу понять что значит и \" )+ ...

1
0 / 0 / 1
Регистрация: 06.07.2015
Сообщений: 27
01.09.2017, 13:16  [ТС] 2
В общем, спустя двое суток мучений я нашел в чем проблема и как ее решить. Надеюсь кому-то это поможет в будущем.
Для того, чтобы использовать переменную в регулярном выражении, надо использовать конструктор регулярного выражения, а именно: var regexp = new RegExp(name, "i"). Чтобы использовать метасимвол: var regexp = new RegExp("\\b("+name+")\\b", "i"), но вся проблема в том, что \b работает для "алфавитно-цифровой символов" в это понятие входят только ASCII, проще говоря только английские слов, для которых выше записанная регулярка будет работать как ей и полагается, но для русских слов работать она не будет, по этому приходится извращаться с наборными классами символов, а именно вот так:
Javascript
1
2
3
4
5
var str ="какОЙ герОЙ. Ой ой ой"
var name ="ой";
var re = new RegExp("(^|[^а-яё])("+name+")([^а-яё]|$)", "i");
arr=str.match(re);
document.write(arr[0]);//запишется первая частица Ой встречающиеся в строке.
0
01.09.2017, 13:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2017, 13:16
Помогаю со студенческими работами здесь

Запуталась в регулярном выражении
Задание - Проверить что заданная строка – валидный домен (состоит из нескольких поддоменов,...

Ошибка в регулярном выражении
Есть текст $text = '1#{\b 37\par К88\par \b0 \b Акулова, З. М. \b0 \par \tab Куда пойти...

Ошибка в регулярном выражении
Составляю регулярное выражение для перевода url из текста, в активную ссылку. $text =...

Парсинг в регулярном выражении
Добрый день. Нужна помощь в регулярном выражении. Как получить содержимое тегов h1, h2 и т.д.?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru