2010-10-20 59 views
3

這看起來很平凡,但我是JS的新手。我有這段代碼:JavaScript搜索()找不到「()」

alert(elementAction);  
var argumentsBegin = elementAction.search("("); 
var argumentsEnd = elementAction.search(")"); 
alert(argumentsBegin); 

elementAction是一個字符串。代碼的問題是它似乎沒有找到括號。第一個警示框顯示例如: outer(inner) 但第二個完全不出現。不過,如果我用{}替換(),則很酷。任何想法爲什麼這不適合我?

+0

究竟是什麼你想怎麼辦。 ?嘗試'var arg = elementAction.match(/ \\([^)] * \\)/);' – Kobi 2010-10-20 11:47:56

回答

10

是的:search()字符串的方法需要一個正則表達式作爲參數,並將正在傳遞的字符串當作正則表達式模式處理,其中括號具有特殊含義。使用indexOf()代替:

alert(elementAction.indexOf("(")); 
6
elementAction.search("\\("); 

搜索正則表達式,(是關鍵字的正則表達式,你必須逃脫(\(\(字符串是"\\("