在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