2013-10-18 136 views
1

我得到一個控制檯錯誤:正則表達式逃逸空格和特殊字符

Cannot call method 'replace'

我想要實現的是逃避所有特殊字符和空格。

text.replace(/[.*+?^${}()|[\]\/\\]/g, '\\$0'); 

所以,當我有一個字符串

"dfgsdfgsdfg))(&(^)()& dfgdg123123sdfg"

應該只理解爲"dfgsdfgsdfgdfgdg123123sdfg"

注:我想逃避/忽略所有非字母數字字符,包括空格。它應該只是[a-zA-Z0-9]

P.S.新手在正則表達式。

+0

聲音像'文本'是未定義的 – CodingIntrigue

+0

文本是可變的。編輯 –

+0

您發佈的錯誤不是因爲'regex'。問題在於'文本'。確保文本是'字符串' – Praveen

回答

2

也許最好的辦法是,以配合 「非字母數字字符」,就像這樣:

var text="dfgsdfgsdfg))(&(^)()& dfgdg123123sdfg"; 
alert(text.replace(/[^a-zA-Z0-9]/g, '')); 

JS Fiddle Demo

+0

謝謝!你有我 –

1

試試這個。

text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); 

或者只是匹配任何非單詞字符,這將是最好的方法。

text.replace(/\W/g, ''); 
+0

嗨,隊友!當我的字符串只包含空格或以特殊字符開頭時仍然出現錯誤,例如「」,「'()(」 –

+0

)謝謝!但是,當字符串以「',+/*。〜!@#$%^&*()」和任何其他非字母數字字符開頭時,包括空格 –

0

試試這個:

$(document).ready(function(){ 
var str = "dfgsdfgsdfg))(&(^)()& dfgdg123123sdfg"; 
alert(str.replace(/[&/\#,+()$~%.'":*?<>{}^ ]/g, "")); 
}); 

DEMO

+0

謝謝!但是我只想實現的只是只讀[a-zA-Z0-9]個字符,其他任何字符都應該轉義 –

+0

是的..plz查看demo ..答案將是dfgsdfgsdfgdfgdg123123sdfg –