我正在創建虛榮網址,我想只允許用戶在他們的網址中有 'a-z', 'A-Z', '0-9, '.', ' ', '-', '_'
。帶字符不允許使用JavaScript選擇?
因此,給定一個字符串,我想剝離不屬於這個組的所有字符。
這樣做的最好方法是什麼?
本來我正在循環查看字符串,然後檢查字符是否在這個字符串中。
但是,這顯然不是很有效......
我正在創建虛榮網址,我想只允許用戶在他們的網址中有 'a-z', 'A-Z', '0-9, '.', ' ', '-', '_'
。帶字符不允許使用JavaScript選擇?
因此,給定一個字符串,我想剝離不屬於這個組的所有字符。
這樣做的最好方法是什麼?
本來我正在循環查看字符串,然後檢查字符是否在這個字符串中。
但是,這顯然不是很有效......
str = str.replace(/[^\w\s.-]/g,'');
例子:http://jsfiddle.net/6Efc5/1/
這是一個匹配在全局設置[^]
什麼不正則表達式,並用它代替空串:
\w
字母數字和下劃線-
破折號\s
空間.
週期編輯:因爲我是在字符集,我真的不需要逃脫.
和-
。固定。
EDIT2:如@Hailwood所述,\s
將匹配幾種類型的空白字符。要僅允許使用' '
字符,而不允許其他人使用製表符或換行符,請用簡單的空格替換\s
。
這將匹配不在列表中的任何字符:[^a-z0-9. \-_]
,然後將其替換爲空。
myString.replace(/[^a-z0-9. \\-_]/gi, "")
嗯,這一個我可以讀,我不應該也添加/ g標誌? – Hailwood
是的。你需要/ gi。我會更新它。 –
介意說明這個如何工作? – Hailwood
@Hailwood:更新。 – user113716
是空格還是空白字符? – Hailwood