0

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

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

如何更改过滤器以允许符号:+ 和 - 并删除数字、字母和其他?它一定与正则表达式有关,我不知道该怎么做。有什么快速的解决方案吗?谢谢。

4

1 回答 1

2

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

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

正如 inhan 在他的评论中指出的那样,由于连字符是该组中的最后一个字符,因此是明确的,因此很可能省略转义以仅使用此正则表达式:

/[^+-]/g

但是我们都不确定这是否总是有效,而转义形式肯定会。

于 2013-01-10T16:46:24.323 回答