0
我試圖從js文件中刪除所有類型轉換。JS正則表達式刪除類型轉換
電流(非工作)的正則表達式我是:
/(?!new\s+&?!function\s+)\w+\((.+)\)/gi
基本上我想喜歡什麼類(VAR),但不new Class(arg)
或function Func(arg)
謝謝!
我試圖從js文件中刪除所有類型轉換。JS正則表達式刪除類型轉換
電流(非工作)的正則表達式我是:
/(?!new\s+&?!function\s+)\w+\((.+)\)/gi
基本上我想喜歡什麼類(VAR),但不new Class(arg)
或function Func(arg)
謝謝!
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)
但如果在實際參數列表中沒有嵌套的括號只會正確匹配。通常匹配函數調用不可能使用正則表達式,因爲常規語法不能處理嵌套的括號組。
我給了這個檢查,因爲我認爲你的答案回答了我提出的問題(相當聰明的事實),但是把它放入我的腳本之後,它開始改變我沒有提到的其他事情。 – Jacksonkr
@Jackson,你有沒有研究過適當的JavaScript解析器,它可以讓你解析你的腳本,行走生成的解析樹,修改它,然後渲染出來? http://stackoverflow.com/questions/6511556/javascript-parser-for-java最近討論了這個問題,如果你不熟練java,還有其他關於py和其他語言的討論。我相信JSLint是圍繞JS解析器構建的。 –