JavaScript:正则表达式提取变量

时间:2013-10-18 16:58:01

标签: regex regex-lookarounds

我试图从一些JavaScript代码中提取字段名称,等号之前的所有内容,但忽略IF语句等。

我可以让它为IF语句工作,但不能用于等号后面的东西。

非常感谢任何帮助。

这是我到目前为止所做的。

麻烦在第3行,我只想要字段验证器而不是()

中包含的字符串
^((?!if).+)(?==)

ruleMode = “test”;

if(ruleMode ==“test”)

验证码=(百分比> = margin.lower)&& (百分比< = margin.upper);

2 个答案:

答案 0 :(得分:0)

如果您在等号前添加\s允许空格,则表达式将起作用。您现在可以在捕获组#1中捕获所需的匹配项。允许空格后,请参阅正则表达式的working demo

^((?!if).+)(?=\s=)

如果你走这条路,我可能会在这里使用非捕获组并将量词+放在外面。

或者,如果=符号前的值始终为字母数字,则可以与\w匹配,并忽略双==

(\w+)(?= +=[^=])

或相反否定非单词字符。

([^\W]+)(?= +=[^=])

请参阅live demo

答案 1 :(得分:0)

检查以下正则表达式:

(\w+)(?=\s*=[^=])

它会检查=后面跟着的另一个=后面跟着的单词。对单词进行签名,它将匹配所有已分配的变量名称。

在这里,您可以看到代码的演示以及其他一些代码:http://regex101.com/r/fM9hL2

Regular expression visualization

我希望这就是你想要的。