Ррегулярка из переменной введенной юзером jQuery

djdiplomat
На сайте с 05.08.2009
Offline
136
369

Вроде простая вещь, но уже пол часа убил - не работе.

Код

В переменной AddParamsSessionBylo (получаем через var AddParamsSessionBylo = jQuery('#final-session').val(); ) лежит 'zz' которую нужно заменить на 'aaaaaaaaa'

Если писать так:

var AddParamsSessionBylo = jQuery('#final-session').val();

var ForReplaceSession = /zz/gi;

var vNewStr = AddParamsSessionBylo.replace(ForReplaceSession, "aaaaaaaaa");

то все работает.

Но если к примеру так:

var usersinput = 'zz';

var AddParamsSessionBylo = jQuery('#final-session').val();

var ForReplaceSession = '/'+usersinput+'/gi';

var vNewStr = AddParamsSessionBylo.replace(ForReplaceSession, "aaaaaaaaa");

то нифига((

Как формировать регулярки на основе переменных?

Как в регулярку вставлять переменную?

LEOnidUKG
На сайте с 25.11.2006
Offline
1755
#1

А если просто:

var vNewStr = AddParamsSessionBylo.replace('/'+usersinput+'/gi', "aaaaaaaaa");

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
djdiplomat
На сайте с 05.08.2009
Offline
136
#2

не катит((

хз почему... в чем разница понять не могу...

даже вот в саму регулярку

var usersinput = 'zz';

var vNewStr = AddParamsSessionBylo.replace('/'+usersinput+'/gi', "aaaaaaaaa"); // не катит

var vNewStr = AddParamsSessionBylo.replace(/zz/gi, "aaaaaaaaa"); // катит

как будто на кавычки быкует, но как мне быть? мне то нужно имено из переменной.

LEOnidUKG
На сайте с 25.11.2006
Offline
1755
#3

а обязательно везде var добавлять?

djdiplomat
На сайте с 05.08.2009
Offline
136
#4

Попробовал без var - ничего не изменилось.

вообще я так полагаю, что наличие var не должно мешать т.к. даже в примерах по реплэйс видел, что var прописывают.

я вот думаю, может как то через new RegExp() пробовать воткнуть, но чет тоже нифига не выходит((

LEOnidUKG
На сайте с 25.11.2006
Offline
1755
#5

Понял вас.

Пользуйтесь:

var AddParamsSessionBylo='zxclkzxjcxlc 2342142 zz 234324234';

var usersinput = 'zz';

var vNewStr = AddParamsSessionBylo.replace( new RegExp( usersinput, "g" ), "aaaaaaaaaa" );

alert(vNewStr);

---------- Добавлено 10.02.2015 в 16:40 ----------

И на будущее:

https://www.google.ru/search?client=opera&q=javascript+var+string&sourceid=opera&ie=UTF-8&oe=UTF-8#newwindow=1&safe=off&q=javascript+replace+%D0%BD%D0%B5+%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82+%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F

djdiplomat
На сайте с 05.08.2009
Offline
136
#6

Спасибо!

Теперь работает!

А я чет кручу-верчу эту RegExp(), малец неверно применял...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий