1

我有这个代码

function verifyKey(e)
{
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;
    regex=/[1-9]/;
    if(regex.test(keycode))
        return true;
    else
        void(0);
}

在 html 中我添加了一个输入并添加了 onkeydown 事件 onkeydown="verifyKey(event);"

我喜欢在显示在文本上之前验证密钥

如果键是数字或逗号(,)或句号(。)然后接受键否则拒绝它

谢谢

4

1 回答 1

7

在您的代码中,您正在测试使用键码定义的正则表达式,因此键盘上的每个字符都将被允许,因为每个键的键码都是数字,因此您不会得到您期望的结果。而不是使用正则表达式尝试下面的代码

<html>
<head>
<script type="text/javascript">
function verifyKey(e)
{
    var keycode;
    if (window.event)
        keycode = window.event.keyCode;
    else if (e)
        keycode = e.which;


    if((keycode>=48 && keycode<=57))
    {alert("if")
        return true;
    }
    else if((keycode == 188)||(keycode == 190))
    {alert("elseif");
        return true;
    }
    else
    {alert("else")
        return false;
    }
}


</script>
</head>
<body>
<input type="text" onkeypress="return verifyKey(event)" />
</body>
</html>
于 2011-09-26T12:54:06.677 回答