[問題] 找出js程式碼中的特定函式字串參數

作者: mrbigmouth (大嘴先生)   2015-02-02 14:55:17
使用語言為Javascript
環境為瀏覽器
目標為在一串"合法的"Javascript檔案中尋找特定函式的呼叫
並取出其中塞入的字串參數
舉例而言
當js程式裡存在i18n("123")
我要可以抓出[123]
目前的簡單作法是
i18n\((?:\s*)?\"([^\"\r])*\"(?:\s*)\)
但是問題來了
這種作法抓不到i18n("你好,\"王大明\"先生")
但這對於Javascript是合法的程式碼,而且也是常常出現的情形
所以有辦法做到讓Regexp做到以下的match動作嗎?
i18n("你好,王大明先生") match 抓出[你好,王大明先生]
i18n("你好,"王大明"先生") not match
i18n("你好,\"王大明\"先生") match 抓出[你好,"王大明"先生]
i18n("你好,\\"王大明\\"先生") not match
i18n("你好,\\\"王大明\\\"先生") match 抓出[你好,\"王大明\"先生]

Links booklink

Contact Us: admin [ a t ] ucptt.com