使用javascript删除不允许选择的字符?

时间:2011-06-22 01:33:54

标签: javascript string replace

我正在创建虚荣网址,我想只允许用户拥有 'a-z', 'A-Z', '0-9, '.', ' ', '-', '_'在他们的网址中。

因此,给定一个字符串,我想删除不属于该组的所有字符。

这样做的最佳方式是什么?

最初我循环遍历字符串,然后检查字符是否在此字符串中。

但这显然效率不高......

2 个答案:

答案 0 :(得分:4)

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

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

这是一个正则表达式,它匹配全局[^]集中的任何,并用空字符串替换它:

  • \w字母数字和下划线
  • -破折号
  • \s空间
  • .期间

编辑:因为我在字符集中,所以我真的不需要逃避.-。固定的。

EDIT2:@Hailwood所述,\s将匹配几种类型的空白字符。要仅允许' '字符,而不允许使用标签或换行符,请将\s替换为一个简单的空格。

答案 1 :(得分:0)

这将匹配列表中没有的任何字符:[^a-z0-9. \-_],然后将其替换为空。

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