JS:正则表达式,用于查找函数体中的所有函数调用

时间:2014-12-07 14:35:24

标签: javascript regex

我需要一个正则表达式来返回以APP(“name”)

开头的函数的参数

所以在这个例子中只有第二行匹配,它会返回文本-name -

testing text:

var w = app("name").test
var x = APP("name").test()
var y = SNAPP("name").test()
var z = APPLICATION("name").test()

我尝试了一些事情,但它不起作用:http://www.regexr.com/3a1h2

THX,

3 个答案:

答案 0 :(得分:1)

您只需要添加单词边界,您必须转义()括号,以便它与文字()符号相匹配。

/\bAPP\(([^()]*)\)/

\b在单词字符和非单词字符之间匹配的单词边界。从组索引1中获取所需的字符串。

DEMO

> var s = 'var x = APP("name").test()';
> console.log(/\bAPP\(([^()]*)\)/.exec(s)[1]);
"name"

答案 1 :(得分:1)

<强>正则表达式:

\bAPP\("([^")]+)

试试这个。看看demo。从组索引1中获取你想要的字符串。

https://regex101.com/r/aQ3zJ3/3

> var s = 'var x = APP("name").test()';
undefined
> console.log(/\bAPP\("([^")]+)/.exec(s)[1]);
name

答案 2 :(得分:0)

试试这个:

\sAPP\(\s*\S.*\)

您正在接收SNAPP()以及APP()

\ s 检查函数名称前的空格