0

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

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

非常感激任何的帮助。

这就是我到目前为止所拥有的。

问题出在第三行,我只想要字段验证器而不是 () 中包含的字符串

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

ruleMode = "测试";

if(ruleMode == "测试")

验证器 = (percent >= margin.lower) && (percent <= margin.upper);

4

2 回答 2

0

检查以下正则表达式:

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

它将检查后面跟着 a=而后面没有 another的单词=。签名的话,它将匹配所有被分配的变量名。

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

正则表达式可视化

我希望这是你想要的。

于 2013-10-18T22:42:14.953 回答
0

如果您\s在等号之前添加允许空格,您的表达式将起作用。现在,您想要的匹配项已在 capture group 中捕获#1。允许空格后查看正则表达式的工作演示。

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

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

或者,如果符号之前的值=始终是字母数字,您可以只匹配\w,而忽略双精度==

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

或相反的否定非单词字符。

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

观看现场演示

于 2013-10-18T18:21:12.673 回答