Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当前字符JavaScript的RegExp_Javascript_Regex_Validation_Charat - Fatal编程技术网

当前字符JavaScript的RegExp

当前字符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

我正在尝试验证一个字符,以确保它是一个字母(不是数字、符号等),然后才允许将其输入表单字段。如何使用JavaScript实现这一点

以下是我尝试过的:

<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,因为钥匙还没打出来。当您从表单中获取值时,它仍然没有字符。您需要做的是使用更高级的事件侦听器。看见