当前字符JavaScript的RegExp

RegExp for current character JavaScript

本文关键字:RegExp JavaScript 字符      更新时间:2023-09-26

在允许将字符输入表单字段之前,我正在尝试验证字符,以确保它是一个字母(而不是数字、符号等)。如何使用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 letterLeng= letterValue.length,然后使用var letterChar = letterValue.charAt(letterLeng),甚至使用var letterChar = letterValue.charAt(letterLeng - 1),但都无济于事。任何建议都将不胜感激。

向事件询问按下的键,然后测试它:

function checkTest(event) {
    event = event || window.event;
    if (!/[A-Za-z]/.test(String.fromCharCode(event.keyCode || event.which))) {
       if (event.preventDefault)
          event.preventDefault();
       else
          event.returnValue = false; 
    }
}
<input type="text" name="test" onkeypress="checkTest(event);"/>

我喜欢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));
    }
});

工作小提琴在这里:http://jsfiddle.net/yaa9snce/

您要查找的是onkeypress事件。

<input type="text" onkeypress="myFunction()">
<script>
function myFunction() {
    alert("You pressed a key inside the input field");
}
</script>