下面是我的javascript代码,只允许字母输入,如果我们输入数字和一些特殊字符,它不接受它们只进入这个工作正常但这个javascript代码应该允许数字,空间也与字母表一起如何做你可以帮帮我吗
<script language="Javascript" type="text/javascript">
function onlyAlphabets(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
}
else if (e) {
var charCode = e.which;
}
else { return true; }
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 32)
return true;
else
return false;
}
catch (err) {
alert(err.Description);
}
}
</script>
<asp:TextBox ID="txtname" runat="server" onkeypress="return onlyAlphabets(event,this);"></asp:TextBox>
答案 0 :(得分:2)
您可以使用正则表达式来测试输入,如下所示:
var regexp = new RegExp(/^[a-zA-Z0-9 ]+$/);
var str="sqdqsd qsd125";
var str2="sqdqsdqsd12;5";
console.log(regexp.test(str));
console.log(regexp.test(str2));
https://jsfiddle.net/Tintin37/7Lj7r9zp/1/
修改强>
我添加了一个小片段;)
function onlyAlphabets(e, t) {
var regexp = new RegExp(/^[a-zA-Z0-9 ]*$/);
console.log(regexp.test(t.value));
return regexp.test(t.value);
}
<input type="text" onkeyup="return onlyAlphabets(event,this);" />
EDIT2
具有所需的行为;)
function onlyAlphabets(e, t) {
var regexp = new RegExp(/^[a-zA-Z0-9 ]*$/);
if (window.event) {
keynum = e.keyCode;
} else if (e.which) {
keynum = e.which;
}
var test = regexp.test(String.fromCharCode(keynum));
return test;
}
<input type="text" onkeypress="return onlyAlphabets(event,this);" />
答案 1 :(得分:1)
我可能会按照此处描述的内容执行某些操作,同时添加所需的空格包含:Best way to alphanumeric check in Javascript
例如,请查看以下代码段:
function allowAlphaNumericSpace(e) {
var code = ('charCode' in e) ? e.charCode : e.keyCode;
if (!(code == 32) && // space
!(code > 47 && code < 58) && // numeric (0-9)
!(code > 64 && code < 91) && // upper alpha (A-Z)
!(code > 96 && code < 123)) { // lower alpha (a-z)
e.preventDefault();
}
}
<input type="text" onkeypress="allowAlphaNumericSpace(event)" />
编辑: 根据你的评论,我的快速和肮脏的解决方案如下,虽然我确定一个更好的选择必须存在...记下从“onkeypress”到“onkeyup”的切换,以确保在新的后更新值字符已插入。
function allowAlphaNumericSpace(thisInput) {
thisInput.value = thisInput.value.split(/[^a-zA-Z0-9 ]/).join('');
}
<input type="text" onkeyup="allowAlphaNumericSpace(this)" />
答案 2 :(得分:0)
您的代码不接受数字的原因是因为数字也有自己的字符代码。例如,1的字符代码是48.要包含数字,您应该在if语句中包含它:
(charCode >= 48 && charcode <= 57)
不确定为什么空格不起作用,但看看上面是否有帮助!