如何使用JavaScript替换此字符串中的所有字符:replace.按_

Kev*_*nle 8 javascript regex

JavaScript中的以下语句按预期工作:

var s1 = s2.replace(/ /gi, '_'); //replace all spaces by the character _
Run Code Online (Sandbox Code Playgroud)

但是,要替换所有出现的字符.由角色_,我有:

var s1 = s2.replace(/./gi, '_');
Run Code Online (Sandbox Code Playgroud)

但结果是一个字符串完全填充了字符_

为什么以及如何更换.通过_使用JavaScript?

Jac*_*son 25

的.正则表达式中的字符将匹配所有内容.你需要逃避它,因为你想要一个文字句点字符:

var s1 = s2.replace(/\./gi, '_');
Run Code Online (Sandbox Code Playgroud)


Sil*_*ost 6

你需要逃避点,因为它是正则表达式中的特殊字符

s2.replace(/\./g, '_');
Run Code Online (Sandbox Code Playgroud)

请注意,点不需要在字符类中转义,因此如果您想一次性用下划线替换点和空格,您可以这样做:

s2.replace(/[. ]/g, '_');
Run Code Online (Sandbox Code Playgroud)

使用iflag与此处以及第一个正则表达式无关.