поиск подстроки
Никак не вьеду, есть строка, в которой нужно найти подстроку, хранящуюся в переменной, и вырезать, проблема в том, что подстрока может выглядеть так
str , а может так ', '+str , т.е. запятая с пробелом может быть может не быть, пытаюсь сделать как то так var expr = new RegExp("?(, )("+str+")/gi"); , но не могу разобраться в синтаксисе, может здесь и не нужно использовать регулярки? |
str=', а может так' strOut = str.split(", ").join('') alert('>'+strOut+'<') |
так а мне нужно убрать из строки подстроку содержащую обязательно str и необязательно ', '
|
Цитата:
str='str\ \ \ , , а может так'; strOut = str.split(", ").join('').replace(/^str\s*/g,'') alert('>'+strOut+'<') |
мне ваше "а может так" нужно тоже убрать из строки(вместе с частью ", ", если она имееется)
|
var text = 'str ha ,str'; alert(text + '\n' + text.replace(/\,?str/g, 'ha')); PS: или объясняйте подробнее и понятнее |
всё почти так, только, где у вас запятая, у меня ",пробел", и если вместо символов str надо подставить переменную var str='что-то', то как это описать в регулярке?
|
про пробел забудьте, хотя интересно все равно
|
добавить пробел после запятой
var text = 'str ha , str'; alert(text + '\n' + text.replace(/,?\s?str/g, 'ha')); что есть регулярное выражение - шаблон текста, всё что под этот шаблон в искомой строке находится то и возвращается (без флагов - первое совпадение с шаблоном и т.п. см. в учебнике темы по регулярке) |
вы экранируете запятую?
|
Цитата:
|
zebulun,
Нарисуйте пару Входных строк, вместе с остаточной входящей(в выходную строку) инфой И к ним выходные строки |
Цитата:
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) и правда здесь двойное экранирование делать нужно |
bes,
:D Не бери сильно дурной пример, хотя он иногда спасает Воть классика http://javascript.ru/basic/regular-e...n#obekt-regexp var reg = new RegExp("a" + str + "15", "i") |
ну другого способа использовать переменную в регулярном выражении пока никто не предложил, а значит твой пока лучший :)
|
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,"\\?"); |
Цитата:
всё понял, два способа: обычный в RexExp и дополнительно eval для / / |
Часовой пояс GMT +3, время: 01:15. |