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);
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#")