RegExp 用找到的选项替换 3 个选项之一,但相反

RegExp replace one of 3 options with the option found but in reverse

我想替换给定的文本 如果有 bx 替换为 xb 如果有 ux 替换为 xu 如果有 sx 替换为 xs 有很多选项,在所有选项中我想颠倒找到的顺序。 (x 必须在给定的字符数组之前) 它可以写在一个表达式中吗? 我想在 Adob​​e Air AS3 中使用它

lookFor = / \u05BC\u05BD | \u05C1\u05BD /

replaceWith = \u05BD ???(这取决于找到了什么) txt.replace(寻找,替换);

在 ActionScript/JavaScript 中,String.replace() function 可以将函数作为您的 replaceWith 参数。

使用捕获组和全局标志,您可以找到每组字符并在传递的函数中反转它们:

lookFor = /(\u05BC\u05BD)|(\u05C1\u05C2)/g;

var reversedString: String = myString.replace(lookFor, function(str){
    return str.split('').reverse().join('');
});

注意:我已经编辑了您的 RegExp 以删除字符周围的空格,我不知道它们对您的搜索有多重要。您可能要考虑使用边界 \b(\u05BC\u05BD)\b 匹配而不是空格,但这取决于您要匹配的内容。