我正在用javascript編寫應用程序。在我的應用程序中有一個選項來搜索字符串/正則表達式。如果用戶鍵入錯誤的值,則問題是匹配返回javascript錯誤。 示例代碼:javascript語法錯誤:無效的正則表達式
function myFunction() {
var filter = $("#text_id").val();
var query = "select * from table";
var found;
if (query.match(filter) != -1) {
found = true;
}
else{
found = false;
}
//Do something
}
的jsfiddle:http://jsfiddle.net/ZVNMq/
輸入字符串:sel/\
匹配的回報JS錯誤 - Uncaught SyntaxError: Invalid regular expression: /sel\/: \ at end of pattern.
有沒有什麼辦法來檢查字符串是否是有效的正則表達式或不?
'try catch'是最快和無痛的方式。 – nhahtdh 2013-04-23 11:44:59
在任何情況下,聆聽nhahtdh的建議都是一個好主意。在你的具體情況下,你必須逃避逃生符號'\'。一般來說,如果允許模式的未經驗證的用戶輸入,您應該在正則表達式中轉義所有具有特殊含義的字符。如果您恰好將數據存儲在dom節點中,則可能無需付出額外的努力。 – collapsar 2013-04-23 11:51:18