我使用此代码阻止用户在注册页面的用户名字段中输入任何空格。
$(function(){
$('#username').bind('input', function(){
$(this).val(function(_, v){
return v.replace(/\s+/g, '');
});
});
});
但有没有办法禁止除数字,大写和小写以外的所有字符?
因此用户可以输入的唯一字符是:
0123456789 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
答案 0 :(得分:0)
试试这个
return v.replace(/[^a-zA-Z\d]/g, '');
答案 1 :(得分:0)
$('#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://stackoverflow.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
条件检查按下的键是箭头,退格还是删除。如果是这样,那么代码的验证部分就没有意义了。
答案 2 :(得分:0)
v.replace(/[^a-zA-Z0-9 :]/g, "")
应该做的伎俩