2011-06-22 56 views
0

我正在創建虛榮網址,我想只允許用戶在他們的網址中有 'a-z', 'A-Z', '0-9, '.', ' ', '-', '_'帶字符不允許使用JavaScript選擇?

因此,給定一個字符串,我想剝離不屬於這個組的所有字符。

這樣做的最好方法是什麼?

本來我正在循環查看字符串,然後檢查字符是否在這個字符串中。

但是,這顯然不是很有效......

回答

4
str = str.replace(/[^\w\s.-]/g,''); 

例子:http://jsfiddle.net/6Efc5/1/

這是一個匹配在全局設置[^]什麼正則表達式,並用它代替空串:

  • \w字母數字和下劃線
  • -破折號
  • \s空間
  • .週期

編輯:因爲我是在字符集,我真的不需要逃脫.-。固定。

EDIT2:@Hailwood所述,\s將匹配幾種類型的空白字符。要僅允許使用' '字符,而不允許其他人使用製表符或換行符,請用簡單的空格替換\s

+0

介意說明這個如何工作? – Hailwood

+0

@Hailwood:更新。 – user113716

+0

是空格還是空白字符? – Hailwood

0

這將匹配不在列表中的任何字符:[^a-z0-9. \-_],然後將其替換爲空。

myString.replace(/[^a-z0-9. \\-_]/gi, "") 
+0

嗯,這一個我可以讀,我不應該也添加/ g標誌? – Hailwood

+0

是的。你需要/ gi。我會更新它。 –