Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как в регулярных выражениях использовать переменную (https://javascript.ru/forum/misc/24235-kak-v-regulyarnykh-vyrazheniyakh-ispolzovat-peremennuyu.html)

VikaR 22.12.2011 14:21

Как в регулярных выражениях использовать переменную
 
Есть код
var q="бла-бла-бла";
var t=/q;/; - как на javascript'е сделать вместо q ее значение, т.е бла-бла-бла.
Значение q будет вычисляться програмно.
var t="/"+q+";/"; - не прокатило чего-то

GuardCat 22.12.2011 14:25

q = "[a-z]"; 
r = new RegExp(q);

Nekromancer 22.12.2011 14:26

http://javascript.ru/basic/regular-e...n#obekt-regexp

рони 22.12.2011 14:27

VikaR,
var t = new RegExp(q, 'ig');

VikaR 22.12.2011 14:56

Еще вопрос. Есть строка типа "1;2;4;5;33;7;8;2;333;" (это числа, раздеренные знаком ;) Нужно найти определенное число, например "3". Что-то не получается построить регулярку. Число находится, ибо есть два варианта 33 и 333. А нужно чтобі не находилось. Ибо числа 3 - нет. Понятно объяснила?

Nekromancer 22.12.2011 14:58

"1;2;4;5;33;7;3;8;2;333;".split(';').forEach(function(key){
if(key == 3){
alert('yeah');
}
});

VikaR 22.12.2011 15:02

Есть строка типа "33;5;6;8;333;9;2;" - числа через точку с запятой ";"
Ищу число, например 3. Число будет определяться ранее программно
var q = "3;";
var t = new RegExp(q);
var rez = t.test(txtExcludedDrivesNumber.value)
Оно находится ибо есть и 33; и 333;
Как построить регулярку для этого случая? Затупила совсем.

var q = "[^\d]+3;"; - не подходит
var q = "[^0-9]+3;"; - так тоже.
Спасибо

Nekromancer 22.12.2011 15:08

VikaR,
Выше ответ.

рони 22.12.2011 15:46

VikaR,
q = "3";
str = "1;2;4;5;33;7;8;2;333;"
t = new RegExp("(^|;)"+q+";");
alert(t.test(str));

VikaR 22.12.2011 20:49

рони, Nekromancer спасибо. Проверила скорость работы. У рони в 2 раза быстрее


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