通过RegExp删除符号

时间:2013-10-06 15:31:46

标签: javascript regex

我需要删除下一个符号:

  • \

  • /

  • .

  • ?

  • :

并尝试使用下一个RegExp:

var NoUse = new RegExp("\/|\\|\:|\?","g");
...
var name = fullname.replace(NoUse,"g");
...

但它有错误:

SyntaxError: Invalid regular expression: `//|\|:|?/:` Nothing to repeat

如何更改此正则表达式?

2 个答案:

答案 0 :(得分:2)

使用字符类([]):

var name = fullname.replace(/[\\/.?:]+/g, '');

示例:

var fullname = 'J. Lee';
var name = fullname.replace(/[\\/.?:]+/g, '');
name # => "J Lee"

答案 1 :(得分:2)

RegExp构造函数中,您必须双重转义反斜杠:

new RegExp("/|\\\\|:|\\?|\\.","g");

反斜杠本身必须被转义。哦,你在正则表达式中没有这段时间。

否则,您可以使用字符类:

new RegExp("[/\\\\:?.]","g");

或者只是使用这个结构:

var NoUse = /[\/\\:?.]/g;