使用 jQuery 在文本输入字段中禁止不需要的字符
Posted
技术标签:
【中文标题】使用 jQuery 在文本输入字段中禁止不需要的字符【英文标题】:Disallowing unwanted characters in text input field with jQuery 【发布时间】:2015-11-21 23:21:28 【问题描述】:我正在使用此代码来防止用户在注册页面的用户名字段中输入任何空格。
$(function()
$('#username').bind('input', function()
$(this).val(function(_, v)
return v.replace(/\s+/g, '');
);
);
);
但是有没有办法禁止除数字、大写和小写以外的所有字符?
所以用户可以输入的唯一字符是:
0123456789 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
【问题讨论】:
【参考方案1】:试试这个
return v.replace(/[^a-zA-Z\d]/g, '');
【讨论】:
是的,这个工作并且仍然允许退格工作,谢谢;)【参考方案2】:v.replace(/[^a-zA-Z0-9 :]/g, "")
应该做的伎俩
【讨论】:
【参考方案3】:$('#username').keypress(function (e)
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str))
return true;
e.preventDefault();
return false;
);
https://***.com/a/13237018/1017882
编辑(允许退格):
$('#username').keypress(function (e)
if (keyCode == 8 || (keyCode >= 35 && keyCode <= 40))
return;
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str))
return true;
e.preventDefault();
return false;
);
新的if
条件检查按下的键是箭头、退格还是删除。如果是这样,那么代码的验证部分就没有任何意义了。
【讨论】:
啊,不是很完美,这会阻止退格键工作。有解决办法吗?以上是关于使用 jQuery 在文本输入字段中禁止不需要的字符的主要内容,如果未能解决你的问题,请参考以下文章