实时演示:http://jsfiddle.net/thisizmonster/DveuB/
如何更改输入框只允许输入 A-Z、a-z、0-9 字符,且不使用正则表达式?
假设您也想接受空格:
$("#user").keypress(function(event){
var ew = event.which;
if(ew == 32)
return true;
if(48 <= ew && ew <= 57)
return true;
if(65 <= ew && ew <= 90)
return true;
if(97 <= ew && ew <= 122)
return true;
return false;
});
如果您不想接受空格,请删除if(ew == 32) return true;
JSFiddleBackspace
添加 if (ew == 8) return true;
。 - Mehdi Dehghani<input type="text" id="firstName" onkeypress="return (event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || (event.charCode >= 48 && event.charCode <= 57)" />
ASCII字符集:https://www.w3schools.com/charsets/ref_html_ascii.asp
其他所有答案都可以,但不能防止复制粘贴非英文字符。
以下代码适用于键盘按下和复制粘贴:
<input type="text" name="text" oninput="this.value=this.value.replace(/[^A-Za-z\s]/g,'');">
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('.clsAlphaNoOnly').keypress(function (e) { // Accept only alpha numerics, no special characters
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;
});
})
</script>
<body>
<input class='clsAlphaNoOnly' type='text'>
</body>
</html>
$(function(){
$("#user").keypress(function(event){
if ((event.charCode >= 48 && event.charCode <= 57) || // 0-9
(event.charCode >= 65 && event.charCode <= 90) || // A-Z
(event.charCode >= 97 && event.charCode <= 122)) // a-z
alert("0-9, a-z or A-Z");
});
});
更新: http://jsfiddle.net/DveuB/4/
为了防止@mu所说的问题:
$("#user").keyup(function(event){
if (event.altKey == false && event.ctrlKey == false)
if ((event.keyCode >= 48 && event.keyCode <= 57 && event.shiftKey== false) ||
(event.keyCode >= 65 && event.keyCode <= 90) ||
(event.keyCode >= 97 && event.keyCode <= 122))
alert("0-9, a-z or A-Z");
});
$(function(){
$("#user").bind('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;
});
});
你可能需要编写一些if语句或类似的代码,将按键码与表示其他按键码的数字进行验证:
例如:
if(keycode < 80)
return false;
keypress
,而不是keyPress
。 - ThiefMaster