我有一个input
文本框,最大长度为20.在此文本框中,我只想允许以下字符a-z
,A-Z
,0-9
, whitespace
,下划线_
,短划线-
,正斜杠/
和反斜杠\
。
所以我想出了以下功能。
$("#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;
但它似乎没有用空字符串替换文本框中的值,如果它没有匹配它。有人能告诉我哪里出错了。
答案 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" />