在JavaScript下面的語句按預期工作:如何在此特定情況下使用JavaScript替換字符串中的所有字符:替換。由_
var s1 = s2.replace(/ /gi, '_'); //replace all spaces by the character _
然而,更換角色的所有事件。由字符_,我有:
var s1 = s2.replace(/./gi, '_');
但結果是完全充滿性格_
爲什麼以及如何替換字符串。通過_使用JavaScript?
在JavaScript下面的語句按預期工作:如何在此特定情況下使用JavaScript替換字符串中的所有字符:替換。由_
var s1 = s2.replace(/ /gi, '_'); //replace all spaces by the character _
然而,更換角色的所有事件。由字符_,我有:
var s1 = s2.replace(/./gi, '_');
但結果是完全充滿性格_
爲什麼以及如何替換字符串。通過_使用JavaScript?
The。正則表達式中的字符將匹配所有內容。你需要躲避它,因爲你要一個文字句點字符:
var s1 = s2.replace(/\./gi, '_');
你需要躲避點,因爲它是在正則表達式這點不需要轉義特殊字符
s2.replace(/\./g, '_');
注在字符類中,因此,如果您想更換點和空間使用下劃線一氣呵成,你可以這樣做:
s2.replace(/[. ]/g, '_');
使用i
標誌在這裏無關緊要,爲w如你的第一個正則表達式。
您也可以使用字符串代替正則表達式。
var s1 = s2.replace ('.', '_', 'gi')
也有這一點,也很好的工作:
var s1 = s2.split(".").join("_"); // Replace . by _ //
這是一個非常奇怪的方法 – SilentGhost 2010-06-23 15:55:23
好吧,它是唯一一個不需要RegExp的人。 – HoLyVieR 2010-06-23 16:22:04
這是一種不同的方法,它更好,替換它只替換第一次出現 – Abhi 2013-10-28 18:23:48
+1好點 - 正則表達式是矯枉過正這裏。 (提示J.Z.報價在3 ... 2 ... 1 ...) – Piskvor 2010-06-23 15:48:31
第三個參數不是標準的。並非所有的瀏覽器都會支持它。看到這個https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/replace – HoLyVieR 2010-06-23 16:19:57