替换不匹配的字符串中的字符

时间:2017-03-24 14:34:40

标签: javascript jquery regex

我有一个input文本框,最大长度为20.在此文本框中,我只想允许以下字符a-zA-Z0-9whitespace,下划线_,短划线-,正斜杠/和反斜杠\

所以我想出了以下功能。



$("#se_del").keyup(function (e) {
    const regex = /[^a-zA-Z0-9 _\/\-\\]+/g;
    if (regex.test(this.value)) {
        this.value = this.value.replace(regex, '');
    }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="se_del" />
&#13;
&#13;
&#13;

但它似乎没有用空字符串替换文本框中的值,如果它没有匹配它。有人能告诉我哪里出错了。

1 个答案:

答案 0 :(得分:1)

而不是,在正则表达式中使用\s作为空格。 会杀死你的正则表达式

$("#se_del").on('keyup',function (e) {
    const regex = /[^a-zA-Z0-9\s_\/\-\\]+/g;
    if (regex.test(this.value)) {
        this.value = this.value.replace(regex, '');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="se_del" />