2013-10-06 196 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"