The map
method of a regular expression object can be used to replace matched substrings using a custom function. This function takes a regular expression object as its first argument so we may use it to get additional information about the match being done and do conditional replacement. For example:
class Main { static function main() { var r = ~/(dog|fox)/g; var s = "The quick brown fox jumped over the lazy dog."; var s2 = r.map(s, function(r) { var match = r.matched(0); switch (match) { case 'dog': return 'fox'; case 'fox': return 'dog'; default: throw 'Unknown animal: $match'; }; }); trace(s2); // The quick brown dog jumped over the lazy fox. } }