2010-06-23 86 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

相关问题