我有一个表单文本字段,我想只允许数字和字母.(即,没有#$!等等...)有没有办法抛出错误,防止按键实际输出任何东西,如果用户尝试使用除数字和字母之外的任何字符?我一直试图找一个插件,但还没有找到任何能做到这一点的东西......
我收到了以前开发人员的PHP/JS代码,我需要在手机号码字段中添加号码验证.我已经有了HTML验证,但是我需要添加一个,如果有人按下了无效的键,它不会显示为仅稍后用红色突出显示该字段,因为它包含无效的输入.
我已经看过很多正则表达式并且尝试了它们,但是它们或者我需要的效果是:如果输入了字母或特殊字符,不接受也不显示,所有其他输入(数字,键)被接受(我需要根本不显示无效字符,不显示然后删除).正在运行最多的正则表达式是这样的:
function filterNonDigits(evt)
{
var event = evt || window.event;
var keyentered = event.keyCode || event.which;
keyentered = String.fromCharCode(keyentered);
//var regex1 = /[0-9]|\./;
var regex2 = /^[a-zA-Z.,;:|\\\/~!@#$%^&*_-{}\[\]()`"'<>?\s]+$/;
if( regex2.test(keyentered) ) {
event.returnValue = false;
if(event.preventDefault) event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
当我使用注释的regex1(IF条件反转)时,自然它将输入限制为只有数字,从而阻止所有键,如Delete,BackSpace等.当使用regex2时,我仍然无法按下删除或小键盘上的数字.
所以我的问题是,上面的代码可以修改为只接受数字而且还允许键吗?另一个重要的一点是,我需要一种不对这些键使用键码(8,24等)的方法,以确保可以使用所有键盘类型.
所以我的解决方案如下:如果存在"oninput"属性,我使用Ehtesham提供的解决方案,如果不存在,则备份使用Rohan Kumar提供的解决方案.所以它是这样的:
if (obj.hasOwnProperty('oninput') || ('oninput' in obj))
{
$('#mobileno').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
}
else
{
$('#mobileno').on('keypress',function(e){
var deleteCode = 8; var backspaceCode = 46;
var key = e.which;
if ((key>=48 && key<=57) || …Run Code Online (Sandbox Code Playgroud)