1

我需要删除下一个符号:

  • \

  • /

  • .

  • ?

  • :

并尝试使用下一个 RegExp :

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

但它会出现错误:

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

如何更改此正则表达式?

4

2 回答 2

2

使用字符类 ( []):

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

例子:

var fullname = 'J. Lee';
var name = fullname.replace(/[\\/.?:]+/g, '');
name # => "J Lee"
于 2013-10-06T15:32:52.173 回答
2

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

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

并且反斜杠本身必须被转义。哦,你的正则表达式中没有句号。

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

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

或者简单地使用这个结构:

var NoUse = /[\/\\:?.]/g;
于 2013-10-06T15:34:25.933 回答