2011-04-10 50 views
2

可能重複:
Escape string for use in Javascript regex正則表達式搜索的特殊字符 「[」

我有對特殊字符難度掃描 「[」。環顧四周後,我已經試過:

var regEx = new RegExp(someValue + "[\x5B]"); // "5B" is the hex-value for "[" 

(我確實想大小寫敏感,我只想要第一次出現,所以我有意不加任何修飾)

我一直在尋找和看,並且我仍然不知道我做錯了什麼。如果這是一個頭腦問題,我很抱歉,但我是JavaScript新手,我仍然在學習所有的細節。

+2

它爲我:'正則表達式( 「[\ x5B]」)測試( 「[」)'產生true。 – Gumbo 2011-04-10 15:49:56

+0

謝謝大家的快速解答,我真的很感激。然而,向誰投下了投票權,感謝對新手的耐心;我只是想學習。 – Zak 2011-04-10 16:11:44

+1

正則表達式_fun!_但我強烈建議花一兩個小時來學習基礎知識。對於初學者來說,你需要知道哪些字符是特殊的:需要轉義的「元字符」(並且規則在字符類內部和外部是不同的。)有一個很好的在線教程:[www.regular-expressions.info](http://www.regular-expressions.info/)。你花在那裏的時間會多次爲自己付出。快樂的regexing! – ridgerunner 2011-04-10 16:49:28

回答

1
var regEx = new RegExp(someValue + "\\["); 

你只需要用一個反斜槓來轉義它。反斜槓是雙重的,因爲它也是一個javascript特殊字符。

+0

你是對的,這是完美的!我試圖使用RegExp.lastIndex(),如果沒有「g」修飾符就無法使用。實質上,它被關閉了,我試圖用它來告訴我我的搜索是否有結果。謝謝, – Zak 2011-04-10 16:42:42

1

應該是罰款,如果你只是逃避性格:

new RegExp(someValue + "\\["); 

你需要兩個反斜槓是因爲反斜槓字符串轉義字符了。所以\\[將導致字符串\[這是我們需要的。

+0

謝謝,這是一個完美的解釋。我選擇了其他答案,因爲它首先彈出,但我給了你一個贊成這個驚人幫助的投票!謝謝, – Zak 2011-04-10 16:40:12

-2

我認爲,所有你需要的是/ [/爲你的表達找到的第一次出現「[」

如果有更復雜的東西你正在尋找,看看這個工具: http://www.gskinner.com/RegExr/

這是創建正則表達式的生命保護程序。

+0

我的JavaScript控制檯拒絕'/ [/'作爲無效的正則表達式。 – 2011-04-10 15:53:22

+0

'''是一個特殊字符。 – 2011-04-10 15:55:40

0

無論是正則表達式.\[.[\x5B]匹配的子串"e["從文本:

"some[text" 

,你可以看到自己:


http://ideone.com/iR78l

var text = "some[text"; 
print(text.match(/.\[/)); 

http://ideone.com/qvsCz

var text = "some[text"; 
print(text.match(/.[\x5B]/)); 
相關問題