String.prototype.replace()删除破折号和下划线

时间:2014-01-25 22:39:07

标签: javascript regex

我正在尝试使用String.prototype.replace()删除所有字符串的破折号和下划线,但它不起作用,我不知道为什么。我的代码:

var str = "dash-and_underscore";
str = str.replace(/_|\-/, " ");
console.log(str);

输出:

"dash and_underscore"

在Chrome控制台中。

由于|的作用类似于OR opperator,我做错了什么?我已经尝试了解决方案here,但它没有用,或者我太愚蠢无法理解 - 这是一个选项;)

1 个答案:

答案 0 :(得分:23)

试试这个:

str = str.replace(/[_-]/g, " "); 

[..]定义了一个字符类
g表示全球研究

(您可以使用量词/[_-]+/g编写它,一次删除多个连续字符。)

str = str.replace(/_|-/g, " ");

这也是正确的,但速度较慢。请注意,破折号不需要从字符类中转义,因为它不是特殊字符。

相关问题