/(斜槓)在下劃線(_或任何有效的正則表達式)前後的含義是什麼。是否和^和$相同,因爲我習慣以這種方式寫作,但也看到有些人也是這樣寫的。而且這是在javascript中替換方法的特別要求,還是我可以不用它呢?javascript中的正則表達式中的斜槓是什麼意思
var hello = "Hello_there."
.replace(/_/g, ' ');
/(斜槓)在下劃線(_或任何有效的正則表達式)前後的含義是什麼。是否和^和$相同,因爲我習慣以這種方式寫作,但也看到有些人也是這樣寫的。而且這是在javascript中替換方法的特別要求,還是我可以不用它呢?javascript中的正則表達式中的斜槓是什麼意思
var hello = "Hello_there."
.replace(/_/g, ' ');
/_/g
建立一個正則表達式字面,就像"_"
建立一個字符串。
/_/g
與new RegExp("_", "g")
相同,但只要經過分析和評估即可編譯,因此如果您經常執行此代碼行,則效率更高。
當第一次評估代碼時,作爲代碼的大字符串會被邏輯結構所替換,其中您有運算符,字符串,數字等等。你在這個結構中也有正則表達式,這意味着每次執行代碼時不會發生正則表達式的編譯,但只會執行一次。
它也更具可讀性,所以當正則表達式不變時應該首選。
該MDN有good documentation on building and using regular expressions。
感謝您回答錯誤,但不應該新的RegExp(「_」,「g」)更有效,因爲我可以將它存儲在一個變量中,這樣我就不必一次又一次地編譯它或我沒有得到什麼? – Nav 2013-02-26 08:05:45
您還可以將'/ _/g'存儲在一個變量中。使用構造函數沒有任何好處。 '/ _/g'快,就像''abc「'比''a」+「b」+「c」'快。我鏈接到的文檔也提到文字更快。 – 2013-02-26 08:06:33
其實我沒有得到關於解析和編譯的部分...你能解釋一下嗎 – Nav 2013-02-26 08:10:09