我需要删除下一个符号:
\
/
.
?
:
并尝试使用下一个RegExp:
var NoUse = new RegExp("\/|\\|\:|\?","g");
...
var name = fullname.replace(NoUse,"g");
...
但它有错误:
SyntaxError: Invalid regular expression: `//|\|:|?/:` Nothing to repeat
如何更改此正则表达式?
答案 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;