Comment faire pour rechercher remplacer avec regex et garder le cas comme original en javascript

Voici mon problème. J'ai une chaîne avec un cas mélangé. Je veux rechercher n'importe quel cas, puis remplacez les correspondances avec certains caractères de chaque côté des matches.

Par exemple:

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

Le résultat de s2 devrait se terminer comme suit:

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

Cela peut-il se faire avec regex? Si c'est le cas, comment?

Cela peut être fait en utilisant une fonction de rappel pour remplacer Regex.

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

Démo: http://jsfiddle.net/dxeE9/

Cela peut être fait en utilisant une référence arrière:

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

Si vous souhaitez faire correspondre "abc" en tout cas:

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

Vous pouvez également le faire

 yourString.replace(/([az]+)/ig, "#$1#")