【发布时间】:2018-05-19 16:56:53
【问题描述】:
我正在尝试从 javascript 中的字符串中获取函数名。
假设我有这个字符串:
function multiply($number) {
return ($number * 2);
}
我在 javascript 中使用以下正则表达式:
/([a-zA-Z_{1}][a-zA-Z0-9_]+)\(/g
但是,选择的是multiply(。这是错误的。我想要的是没有( 的单词multiply,尽管正则表达式应该记住函数名必须附加(。
我做不到。我怎样才能为此制作正确的正则表达式?我知道这不是我真正应该做的事情,而且它对错误非常敏感,但我仍然想尝试完成这项工作。
【问题讨论】:
-
只是不要得到整个匹配,而只有捕获组。
-
你会想注意到,在 javascript 中有很多函数,这个正则表达式不匹配,或者位置错误。
-
很想知道
{1}在字符类中的作用。 -
我认为
{1}应该在字符类之外。 -
在月圆之夜,刚过午夜,你可以试试
eval(`(${string})`).name
标签: javascript regex regex-group