我正在尝试使用String.prototype.replace()
删除所有字符串的破折号和下划线,但它不起作用,我不知道为什么。我的代码:
var str = "dash-and_underscore";
str = str.replace(/_|\-/, " ");
console.log(str);
输出:
"dash and_underscore"
在Chrome控制台中。
由于|
的作用类似于OR
opperator,我做错了什么?我已经尝试了解决方案here,但它没有用,或者我太愚蠢无法理解 - 这是一个选项;)
答案 0 :(得分:23)
试试这个:
str = str.replace(/[_-]/g, " ");
[..]
定义了一个字符类
g
表示全球研究
(您可以使用量词/[_-]+/g
编写它,一次删除多个连续字符。)
或
str = str.replace(/_|-/g, " ");
这也是正确的,但速度较慢。请注意,破折号不需要从字符类中转义,因为它不是特殊字符。