新手正则表达式问题

时间:2014-02-06 16:57:12

标签: javascript regex

我正在尝试将/字符添加到我的范围中。我尝试用\逃避但无济于事。我的目标是去除mod_rewrite URL中不允许的任何字符的输入字段。仅保留字母数字,-_/

这是reg-exp,它返回与a-z,0-9,A-Z,_和 -

不匹配的所有字符
/[^a-z0-9_-]/gi

我试过了:

/[^a-z0-9_-\/]/gi

相关代码块:

$('#meta_pageurl').bind('input', function() {
    var c = this.selectionStart,
    r = /[^a-z0-9_-]/gi,
    v = $(this).val();
    if(r.test(v)) {
        $(this).val(v.replace(r, ''));
        c--;
    }
    this.setSelectionRange(c, c);
});

3 个答案:

答案 0 :(得分:1)

使用此正则表达式:

r = /[^\w\/-]+/g
  • \w代表[A-Za-z0-9_]
  • 连字符应该位于第一个或最后一个位置以避免转义
  • /需要转义
  • +用于提高效率(表示一个或多个匹配项)

答案 1 :(得分:1)

使用此:

/[^a-z0-9_\/-]/gi

如果要在不转义的情况下指定它,请始终将-放在字符类的末尾。否则,-将被解释为字符范围语法的一部分,例如a-z

答案 2 :(得分:0)

使用\-代替-

否则将其视为_-\/,表示_/

中的任何字符