2010-06-23 74 views

回答

25

The。正則表達式中的字符將匹配所有內容。你需要躲避它,因爲你要一個文字句點字符:

var s1 = s2.replace(/\./gi, '_'); 
6

你需要躲避點,因爲它是在正則表達式這點不需要轉義特殊字符

s2.replace(/\./g, '_'); 

注在字符類中,因此,如果您想更換點和空間使用下劃線一氣呵成,你可以這樣做:

s2.replace(/[. ]/g, '_'); 

使用i標誌在這裏無關緊要,爲w如你的第一個正則表達式。

4

您也可以使用字符串代替正則表達式。

var s1 = s2.replace ('.', '_', 'gi') 
+0

+1好點 - 正則表達式是矯枉過正這裏。 (提示J.Z.報價在3 ... 2 ... 1 ...) – Piskvor 2010-06-23 15:48:31

+1

第三個參數不是標準的。並非所有的瀏覽器都會支持它。看到這個https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/replace – HoLyVieR 2010-06-23 16:19:57

1

也有這一點,也很好的工作:

var s1 = s2.split(".").join("_"); // Replace . by _ // 
+0

這是一個非常奇怪的方法 – SilentGhost 2010-06-23 15:55:23

+0

好吧,它是唯一一個不需要RegExp的人。 – HoLyVieR 2010-06-23 16:22:04

+0

這是一種不同的方法,它更好,替換它只替換第一次出現 – Abhi 2013-10-28 18:23:48

相關問題