JS正则表达式删除了类型转换

时间:2011-07-03 01:32:33

标签: javascript regex

我正在尝试从js文件中删除所有类型转换。

我当前的(不工作)正则表达式是:

/(?!new\s+&?!function\s+)\w+\((.+)\)/gi

基本上我想要类似(var)但不是new Class(arg)function Func(arg)

谢谢!

1 个答案:

答案 0 :(得分:3)

 s = "Basically I want anything like Class(var) but not new Class(arg) or function Func(arg)"

re = /(?:(?!new|function)\b\S+|^|[^\w\s])\s*\b([A-Z]\w*\s*\(.*?\))/g

for (var match; (match = re.exec(s));) { alert(match[1]); }

产生

 Class(var)

但只有在实际参数列表中没有嵌套括号时才会正确匹配。通常使用正则表达式来匹配函数调用,因为常规语法不能处理嵌套的括号组。