jquery:正则表达式检测+和 - 仅

时间:2013-01-10 16:44:24

标签: regex

我有一个代码只允许输入数字和字母:

        if (this.value.match(/[^a-zA-Z0-9 ]/g)) {
            this.value = this.value.replace(/[^a-zA-Z0-9 ]/g, '');
        }

如何更改过滤器以允许符号:+和 - 并删除数字,字母和其他?它必须与正则表达式有关,我不确定如何做到这一点。快速解决方案?感谢。

1 个答案:

答案 0 :(得分:2)

您可以将这些字符添加到字符集中,然后删除您要清除的字符。但是,在这里,-符号具有特殊含义,必须像这样转义:

    if (this.value.match(/[^+\-]/g)) {
        this.value = this.value.replace(/[^+\-]/g, '');
    }

正如inhan在他的评论中指出的那样,因为连字符是组中的最后一个字符,因此是明确的,所以很可能省略转义只有这个正则表达式:

/[^+-]/g

但我们都不完全确定这是否会一直有效,而逃脱的形式肯定会有效。