2013-10-06 150 views
1

删除符号我需要删除下一个符号:通过正则表达式

  • \

  • /

  • .

  • ?

  • :

并试图用正则表达式旁边:

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

但它与错误属于:

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

我怎样才能改变这个正则表达式?

回答

2

RegExp构造函数,你必须仔细逃避反斜杠:

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

反斜杠本身必须逃脱。哦,你没有在你的正则表达式的时期。

否则,你可以使用一个字符类:

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

或者干脆使用此结构:

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

谢谢,它的工作 – user2726251

+0

@ user2726251不客气:) – Jerry

2

使用字符类([]):

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

例子:

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