我试图删除字符串的破折号和下划线的所有发生String.prototype.replace(),但它不起作用,我不知道为什么.我的代码:
var str = "dash-and_underscore";
str = str.replace(/_|\-/, " ");
console.log(str);
Run Code Online (Sandbox Code Playgroud)
输出:
"dash and_underscore"
Run Code Online (Sandbox Code Playgroud)
在Chrome控制台中.
既然|像ORopperator 这样的行为,我做错了什么?我在这里尝试过这个解决方案,但它不起作用,或者我太愚蠢无法理解 - 这是一个选项;)
Cas*_*yte 25
试试这个:
str = str.replace(/[_-]/g, " ");
Run Code Online (Sandbox Code Playgroud)
[..]定义一个字符类
g意味着全球研究
(你可以用量词/[_-]+/g来编写它,一次删除几个连续的字符.)
要么
str = str.replace(/_|-/g, " ");
Run Code Online (Sandbox Code Playgroud)
这也是正确的,但速度较慢.请注意,破折号不需要从字符类中转义,因为它不是特殊字符.