我试图替换中的所有点和空格 "
var name = "C. S. Lewis"
Run Code Online (Sandbox Code Playgroud)
并将它们替换为 _
并将其转换为 "C_S_LEWIS"
这是我尝试过的,但它将整个内容转换为下划线 ( _)
var mystring = "C. S. Lewis";
var find = ".";
var regex = new RegExp(find, "g");
alert(mystring.replace(regex, "_"));
Run Code Online (Sandbox Code Playgroud)
这是因为点需要在正则表达式中转义(除非它是字符类的一部分)。这个表达式应该有效:
var regex = /[.\s]+/g;
alert(mystring.replace(regex, '_'))
Run Code Online (Sandbox Code Playgroud)
它匹配至少一个句点或空格的序列,然后在后续.replace()调用中由单个下划线替换。
顺便说一句,这不会将新字符串保存回mystring. 为此,您需要将替换操作的结果分配回相同的变量:
mystring = mystring.replace(regex, '_')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |