Подтвердить что ты не робот

Как искать replace с регулярным выражением и сохранить регистр как оригинал в javascript

Вот моя проблема. У меня есть строка со смешанным футляром. Я хочу искать независимо от случая, а затем заменять совпадения некоторыми символами с каждой стороны совпадений.

Например:

var s1 = "abC...ABc..aBC....abc...ABC";
var s2 = s.replace(/some clever regex for abc/g, "#"+original abc match+"#");

Результат в s2 должен выглядеть следующим образом:

"#abC#...#ABc#..#aBC#....#abc#...#ABC#"

Можно ли это сделать с помощью регулярного выражения? Если да, то как?

4b9b3361

Ответ 1

Это можно сделать, используя функцию обратного вызова для замены regex.

var s1 = "abC...ABc..aBC....abc...ABC";

var s2 = s1.replace(/abc/ig, function (match) {
  return "#" + match + "#"  ;
}
 );

alert(s2);

demo: http://jsfiddle.net/dxeE9/

Ответ 2

Это можно сделать, используя обратную ссылку:

var s2 = s.replace(/(your complex regex)/g, "#$1#")

если вы хотите совместить "abc" в любом случае:

var s2 = s.replace(/(abc)/ig, "#$1#")

Ответ 3

Вы также можете сделать это

yourString.replace(/([a-z]+)/ig, "#$1#")