4 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊
您正在通過將字符串傳遞給RegExp構(gòu)造函數(shù)來構(gòu)造正則表達(dá)式。
您需要轉(zhuǎn)義它,\
以便您的字符串文字可以在將其轉(zhuǎn)換為正則表達(dá)式之前將其表示為數(shù)據(jù)。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個贊
在那里你要創(chuàng)建一個字符串的代碼里面,反斜杠是一個JavaScript轉(zhuǎn)義字符第一,這意味著像轉(zhuǎn)義序列\t
,\n
,\"
,等將被翻譯成其JavaScript對口(制表符,換行符,報價等),和這將成為字符串的一部分。雙反斜杠表示實(shí)際字符串本身中的單個反斜杠,因此如果您想在字符串中使用反斜杠,則首先將其轉(zhuǎn)義。
所以當(dāng)你通過說出你生成一個字符串時var someString = '(\\s|^)'
,你真正在做的是創(chuàng)建一個帶有值的實(shí)際字符串(\s|^)
。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個贊
\在字符串中用于轉(zhuǎn)義特殊字符。如果你想在字符串中使用反斜杠(例如對于\ in \ s),你必須通過反斜杠轉(zhuǎn)義它。所以\成為\\。
編輯:甚至不得不在這里做,因?yàn)閈\在我的回答中轉(zhuǎn)向\。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個贊
正則表達(dá)式需要一個字符串表示\s
,在JavaScript中可以使用文字生成"\\s"
。
這是一個現(xiàn)實(shí)的例子來說明為什么"\s"
還不夠:
alert("One backslash: \s\nDouble backslashes: \\s");
添加回答
舉報