JavaScript正则表达式中的反向引用错误

JavaScript正则表达式中的反向引用错误,javascript,regex,Javascript,Regex,我正在使用两个网站和一个应用程序的组合自学regex。我试图通过一个自制的示例使用反向引用,在这个示例中,我希望大致能够测试Java while循环的语法正确性(为了简单起见,假设我们将其限制为while(value操作符value)) 但是,请查看下面的代码,您将看到引用\1似乎不起作用。我已经在JS中尝试了我的解决方案。还可以使用软件工具Regex Coach 有人能看到这里的问题吗 var rx = /^while\s*\((\s*[a-zA-Z][a-zA-Z0-9_]*\s*)(\&l

我正在使用两个网站和一个应用程序的组合自学regex。我试图通过一个自制的示例使用反向引用,在这个示例中,我希望大致能够测试Java while循环的语法正确性(为了简单起见,假设我们将其限制为while(value操作符value))

但是,请查看下面的代码,您将看到引用\1似乎不起作用。我已经在JS中尝试了我的解决方案。还可以使用软件工具Regex Coach

有人能看到这里的问题吗

var rx = /^while\s*\((\s*[a-zA-Z][a-zA-Z0-9_]*\s*)(\<\=|\<|\>\=|\>|\!\=|\=\=)\s*\1\)/

document.writeln(rx.test("while(x <= y)"));
var rx=/^while\s*\(\s*[a-zA-Z][a-zA-Z0-9\]*\s*)(\\\!\=\=\=\=)\s*\1\)/
document.writeln(rx.test)()while(x您的正则表达式将匹配

while(x <= x )

请注意,
\w
是JavaScript中
[a-zA-Z0-9\
的简写,您不需要转义所有这些符号。

我甚至无法与您的示例进行匹配。所以您要说的是,无法实现我想要的功能。@Andrew S:注意x字符周围的空格(我正要给出与Tim类似的答案)哦,是的,我明白了。那么有什么方法可以满足我的需要吗?@AndrewS:你不能使用反向引用-你必须复制正则表达式中需要重用的部分。
var rx = /^while\s*\(\s*([a-zA-Z]\w*)\s*(<=?|>=?|!=|==)\s*([a-zA-Z]\w*)\s*\)$/