regex 如何删除JavaScript中的函数名和左右括号?[closed]

9udxz4iz  于 2023-02-05  发布在  Java
关注(0)|答案(2)|浏览(172)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

6天前关闭。
Improve this question
如何在JavaScript中使用正则表达式删除 Package 函数?

parse(someVar)

我只想留下someVar。我看到了这个post,但不知道如何应用它。

kr98yfug

kr98yfug1#

取自here
函数名可以包含字母、数字、下划线和美元符号(与变量的规则相同)。
在RegEx中,它看起来像这样:

[a-zA-Z\d_$]+

因此,为了匹配您指定的函数调用,它应该如下所示(我在someVar/ input参数周围添加了括号,以便稍后将其提取为RegEx组):

[a-zA-Z\d_$]+\(([a-zA-Z\d_$]+)\)

在JavaScript中,我们可以这样取出someVar的值:

const regex = /[a-zA-Z\d_$]+\(([a-zA-Z\d_$]+)\)/;

const paramName = regex.exec("parse(someVar)")[1];

console.log(paramName);
// Outputs "someVar"
gorkyyrv

gorkyyrv2#

您还可以在String.match()方法和Array.map()方法的帮助下实现此目的。
现场演示**:**

console.log("parse(someVar)".match(/\((.*?)\)/g).map(b => b.replace(/\(|(.*?)\)/g,"$1")))

正则表达式解释**:**

    • 匹配字符串正则表达式**-\((.*?)\)

\(-允许左括号
(.*?)-定义一个或多个字符的组,?表示非强制性(因此括号内可能有字符,也可能没有)
\)-允许右括号

相关问题