我有問題如下:錯誤使用String.search( 「雙曲正弦(2」)時: 「無效的正則表達式」
var test = $("#k_w").val().search("sinh("+parseFloat(sinh_array[i]));
調試器顯示一個錯誤:Uncaught SyntaxError: Invalid regular expression: /sinh(2/: Unterminated group
sinh_array[i]
是數字。
怎麼了?
我有問題如下:錯誤使用String.search( 「雙曲正弦(2」)時: 「無效的正則表達式」
var test = $("#k_w").val().search("sinh("+parseFloat(sinh_array[i]));
調試器顯示一個錯誤:Uncaught SyntaxError: Invalid regular expression: /sinh(2/: Unterminated group
sinh_array[i]
是數字。
怎麼了?
你在你的正則表達式的左括號,但沒有右括號。
我覺得你真的想這是什麼:
var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]) + "\\)");
要符合實際的括號,而不是創建一個組,我懷疑。
你必須在正則表達式中隱藏圓括號;否則他們開始一個比賽組,因此必須再次關閉。
var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]));
String.search
方法將第一個參數轉換爲正則表達式。
您正在尋找String.indexOf
方法,它可以搜索字符串,而無需轉換爲RegExp。
var test = $("#k_w").val().indexOf("sinh("+parseFloat(sinh_array[i]));
// ^^^^^^^ indexOf
在字符串文字中,需要使用雙反斜槓來轉義特殊的RegEx字符(例如括號)。 – 2012-03-18 20:03:01
僅適用於其他控制字符的字符。 – ThiefMaster 2012-03-18 20:21:55
'RegExp(「sinh \(」)' - >'SyntaxError:unterminated parenthetical'。它應該是'sinh \\(',如在接受的答案中。 – 2012-03-18 20:24:10