Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   поиск подстроки (https://javascript.ru/forum/misc/30834-poisk-podstroki.html)

bes 17.08.2012 18:00

Цитата:

Сообщение от zebulun
вы экранируете запятую?

я - да :) так как не мастер регулярок, экранируются специальные символы, чтобы искались обычные

Deff 17.08.2012 18:03

zebulun,
Нарисуйте пару Входных строк, вместе с остаточной входящей(в выходную строку) инфой

И к ним выходные строки

bes 17.08.2012 20:48

Цитата:

Сообщение от zebulun
и если вместо символов str надо подставить переменную var str='что-то', то как это описать в регулярке?

var text = 'bab ha , bab';
var str = 'bab';
var reg = '/,?\\s?' + str + '/g';
alert(text + '\n' + text.replace(eval(reg), 'ha'));

Только что у Deff-а научился (http://javascript.ru/forum/misc/3082...tml#post198326) и правда здесь двойное экранирование делать нужно

Deff 17.08.2012 21:10

bes,
:D Не бери сильно дурной пример, хотя он иногда спасает
Воть классика http://javascript.ru/basic/regular-e...n#obekt-regexp

var reg = new RegExp("a" + str + "15", "i")

bes 17.08.2012 21:13

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

Deff 17.08.2012 21:26

bes,
Я ж привёл пример(пост 14)
Полный вариант
var str="Чё то там....."
var pattern = "1."+str+"Да";

var regexp = new RegExp( pattern, "ig")

var Out="1,Чё то там.....Да OЙ - Вру".replace(regexp,"Воть:::");

alert(Out)

Ксать, если есть вопросительные знаки в переменной(засовываемой в pattern) их нужно всё равно экранировать типо

str=str.replace(/\?/g,"\\?");

bes 17.08.2012 22:15

Цитата:

Сообщение от Deff
bes,
Я ж привёл пример(пост 14)

чуть раньше прочитал, чем появилось исправление
всё понял, два способа: обычный в RexExp и дополнительно eval для / /


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