正则表达式测试,有没有更好的方法来写这个?

时间:2015-07-19 17:22:37

标签: javascript regex optimization

以下代码有效,但我想知道是否有更好的方法来实现相同的结果:

var regex = /define\((\s+)?['|"](PRIVATE_KEY)['|"],(\s+)?['|"](.*)['|"](\s+)?\)/i;

测试:

regex.test("define('PRIVATE_KEY', 'MYSECRETKEY');");


https://regex101.com/r/pW0qS0/4

2 个答案:

答案 0 :(得分:2)

只在MYSECRETKEY部分周围放置大括号,因为那是你要捕捉的部分。

var regex = /^define\(\s*['"]PRIVATE_KEY['"]\s*,\s*['"](.*?)['"]\s*\);$/i;

答案 1 :(得分:1)

首先我认为你不需要在字符类中使用pip(如果你只想匹配一个引用和双引号)而不是(\s+)?你可以使用\s*

/define\(\s*['"](PRIVATE_KEY)['"],\s*['"](.*)['"]\s*\)/i

请参阅演示https://regex101.com/r/dL1vF4/3