我正在尝试从js文件中删除所有类型转换。
我当前的(不工作)正则表达式是:
/(?!new\s+&?!function\s+)\w+\((.+)\)/gi
基本上我想要类似(var)但不是new Class(arg)
或function Func(arg)
谢谢!
答案 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)
但只有在实际参数列表中没有嵌套括号时才会正确匹配。通常使用正则表达式来匹配函数调用,因为常规语法不能处理嵌套的括号组。