以下表达式:
targetString = targetString.replace(parenthesizedRegEx, "$3$1$11");
其中 parenthesizedRegEx 是一个有效的带括号的正则表达式,用一个字符串替换匹配的文本,该字符串是第三项、第一项、第一项和文字“1”的串联。就好像它忽略了“两位数”括号项索引“$11”并将其视为“$1”和文字“1”。
是否应该使用一些转义或其他分隔?
此结果出现在 FF 和 IE9 中。
谢谢你的帮助。我希望答案是令人尴尬的简单!
编辑更新:
我做了一个 jfiddle 来全面展示这个问题。我使用的正则表达式包括一个否定的前瞻断言。似乎当我包含断言的所有开放括号时,它失败了。如果我不包含任何插入的开放括号,它也会失败。但是,如果我包括除了断言的初始开头括号之外的所有内容,它就可以工作。我知道用 (?:...) 组成的组没有编号。但似乎必须在断言中包含所有其他开放括号才能正确计数。所以你会在 jfiddle 中看到 $11 不起作用,但 $10 起作用。
谢谢你看这个。