我想要一个只允许字母数字字符,退格键,删除,空格和特殊字符的验证,它可以改变Kyeboard的文本框值。我试过像
$('#profile_pstate').on('keypress',function(e1){
var cntry_key = e1.which;
if(cntry_key == 8 || cntry_key == 46 || cntry_key == 32 || (cntry_key >= 48 && cntry_key <= 57) || (cntry_key >= 65 && cntry_key <= 90)) {
// For Backspace, Delete, Space, Numbers and Alphabets
alert('success');
}
});
但是对于特殊字符,我该如何添加它们。如果我手动添加它们,它们不在字母和数字之类的适当范围内。请你建议我这样做的方法,甚至是正确的方法来进行验证
答案 0 :(得分:0)
你可以为特殊字符做这样的事情
function nospecialChars(field) {
var val = document.getElementById(field);
var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
for (var i = 0; i < val.value.length; i++) {
if (iChars.indexOf(val.value.charAt(i)) != -1) {
alert("Special Characters are not allowed");
return false;
}
}
}
页面文本框更改方法调用功能
<input type="text" id="txt" onkeyup="validate(this.id)" />
答案 1 :(得分:0)
尝试RegExp,下面的例子允许字母数字&amp;仅限空格:
$(function() {
$('#profile_pstate').on('input', function() {
this.value = this.value.replace(/[^\da-zA-Z\s]/g, '');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="profile_pstate" />
&#13;
答案 2 :(得分:0)
我试过像
$('#profile_country').on('keypress',function(e1){
var cntry_key = e1.which;
var cntry_key_code = e1.keyCode;
if( (cntry_key_code == 0 && cntry_key > 0 && !e1.ctrlKey) || (cntry_key == 0 && cntry_key_code == 46) || (cntry_key == 8)
|| (e1.ctrlKey && cntry_key == 120) || (e1.ctrlKey && cntry_key == 118)
|| (e1.ctrlKey && cntry_key == 86) || (e1.ctrlKey && cntry_key == 88)) {
$('#profile_pstate').val('');
}
});
它适用于Alpha-Numeric, Special characters, Space, Backspace and Delete
以及control
等ctrl+A
事件,仅适用于剪切(ctrl + x)和粘贴(ctrl + v)。