当前字符JavaScript的RegExp
我正在尝试验证一个字符,以确保它是一个字母(不是数字、符号等),然后才允许将其输入表单字段。如何使用JavaScript实现这一点 以下是我尝试过的:当前字符JavaScript的RegExp,javascript,regex,validation,charat,Javascript,Regex,Validation,Charat,我正在尝试验证一个字符,以确保它是一个字母(不是数字、符号等),然后才允许将其输入表单字段。如何使用JavaScript实现这一点 以下是我尝试过的: <script type="text/javascript"> function checkTest() { var letterValue = document.forms[0].test.value; var letterCheck = /[a-z]/i; var letterTest = letterV
<script type="text/javascript">
function checkTest() {
var letterValue = document.forms[0].test.value;
var letterCheck = /[a-z]/i;
var letterTest = letterValue.test(letterCheck);
}
</script>
<html>
<body>
<form>
<input type="text" name="test" onkeypress="checkTest();"/>
</form>
</body>
</html>
函数检查测试(){
var letterValue=document.forms[0].test.value;
var-letterCheck=/[a-z]/i;
var letterTest=letterValue.test(letterCheck);
}
此代码将检查值的字符串。我试过使用
var-letterLeng=letterValue.length
,然后使用var-letterChar=letterValue.charAt(letterLeng)
甚至var-letterChar=letterValue.charAt(letterLeng-1)
都没有用。任何建议都将不胜感激 您要查找的是onkeypress
事件
函数myFunction(){
警报(“您在输入字段内按下了一个键”);
}
向事件询问按下的键,然后测试它:
功能检查测试(事件){
event=event | | window.event;
if(!/[A-Za-z]/.test(String.fromCharCode(event.keyCode | | event.which))){
if(event.preventDefault)
event.preventDefault();
其他的
event.returnValue=false;
}
}
我喜欢Alex K的答案,但我无法让“onkeypress”处理程序工作,所以我尝试使用Jquery。它并不能阻止坏字母短暂出现,但它确实阻止了它们被输入
它使用“keyup”事件,这实际上使得在本例中检查密钥代码更加容易,因为您希望将其限制为[a-zA-Z]
$("#myinput").on("keyup", function (e) {
// Ignore the shift key.
if (e.keyCode === 16) {
return true;
}
if ((e.keyCode < 65 || e.keyCode > 90)) {
var str = $("#myinput").val();
$("#myinput").val(str.slice(0, str.length - 1));
}
});
$(“#myinput”)。在(“键控”上,函数(e){
//忽略shift键。
如果(如keyCode===16){
返回true;
}
如果((e.keyCode<65 | | e.keyCode>90)){
var str=$(“#myinput”).val();
$(“#myinput”).val(str.slice(0,str.length-1));
}
});
工作的小提琴在这里:我想在我的代码中包括它。我的错误。即使我这样做,我也无法让regexp检查当前键入的字符。它总是在后面检查。@turd.ferguson,因为钥匙还没打出来。当您从表单中获取值时,它仍然没有字符。您需要做的是使用更高级的事件侦听器。看见