JavaScript OR 运算符

标签 javascript asp.net

我很难确定我的代码出了什么问题

function NavCode() {
    if ((event.keyCode > 31 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65)|| (event.keyCode > 90 && event.keyCode < 97)|| (event.keyCode > 122 && event.keyCode < 164)||(event.keyCode > 166) )
        event.returnValue = false;
        return false;
    }

我的目标是只允许 0-9 数字 A-Za-z 字母 ñÑ 和特殊字符 我成功实现了 0-9-A-ZazñÑ

使用此代码

function NavCode() {
        if ((event.keyCode > 31 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65)|| (event.keyCode > 90 && event.keyCode < 97)|| (event.keyCode > 122 && event.keyCode < 164))
            event.returnValue = false;
            return false;
        }

问题在于它还允许 165 以上的 ASCII 字符,例如。 ªº¿ 但是当我添加 ||(event.keyCode > 166) 时,特殊字符不起作用,你能帮我只允许
0-9-A-ZazñÑ??我真的很难调试 java 脚本,因为我是新手

谢谢。

最佳答案

您在 if 上缺少大括号({}),因此您的 返回 false; line 始终执行,因为不带花括号的 if 仅有条件地执行下一行。

试试这个:

function NavCode() {
    if ((event.keyCode > 31 && event.keyCode < 48) || 
       (event.keyCode > 57 && event.keyCode < 65)|| 
       (event.keyCode > 90 && event.keyCode < 97)|| 
       (event.keyCode > 122 && event.keyCode < 164)) {
        event.returnValue = false;
        return false;
    }
}

现在return false;仅当if条件为true时才会执行。

关于JavaScript OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392433/

相关文章:

javascript - 从文本链接获取 URL 参数并发布到 AJAX 调用

c# - 在 .NET 中构建业务应用程序的最佳方式

c# - IIS 重新启动服务器中的文件删除/存储操作并丢失 session

c# - EWS 异常 : "Connection failed. Try later."

Javascript - JSON Stringify 原始字符串(没有额外的转义)

javascript - 在内置方法调用中使用形式参数

javascript - 如何计算一个月的工作时间?

asp.net - 测量客户端与服务器上的网页性能

javascript - 如何从 jsp 中列出数据库数据并将其打印出来?

javascript - 如何在 Chrome 扩展中为 OAuth2 提供重定向 URL?