2013-02-26 113 views
0

/(斜槓)在下劃線(_或任何有效的正則表達式)前後的含義是什麼。是否和^和$相同,因爲我習慣以這種方式寫作,但也看到有些人也是這樣寫的。而且這是在javascript中替換方法的特別要求,還是我可以不用它呢?javascript中的正則表達式中的斜槓是什麼意思

var hello = "Hello_there." 
    .replace(/_/g, ' '); 

回答

6

/_/g建立一個正則表達式字面,就像"_"建立一個字符串。

/_/gnew RegExp("_", "g")相同,但只要經過分析和評估即可編譯,因此如果您經常執行此代碼行,則效率更高。

當第一次評估代碼時,作爲代碼的大字符串會被邏輯結構所替換,其中您有運算符,字符串,數字等等。你在這個結構中也有正則表達式,這意味着每次執行代碼時不會發生正則表達式的編譯,但只會執行一次。

它也更具可讀性,所以當正則表達式不變時應該首選。

該MDN有good documentation on building and using regular expressions

+0

感謝您回答錯誤,但不應該新的RegExp(「_」,「g」)更有效,因爲我可以將它存儲在一個變量中,這樣我就不必一次又一次地編譯它或我沒有得到什麼? – Nav 2013-02-26 08:05:45

+0

您還可以將'/ _/g'存儲在一個變量中。使用構造函數沒有任何好處。 '/ _/g'快,就像''abc「'比''a」+「b」+「c」'快。我鏈接到的文檔也提到文字更快。 – 2013-02-26 08:06:33

+0

其實我沒有得到關於解析和編譯的部分...你能解釋一下嗎 – Nav 2013-02-26 08:10:09

0

斜線表示開始和/ g表示您的正則表達式模式結束。這只是語法。

+0

所以這是不一樣的^和$ – Nav 2013-02-26 08:16:02

相關問題