jjzjj

JavaScript Keycode 46 是 DEL 功能键还是 (.) 句号?

coder 2024-05-13 原文

我使用 jquery 在 JavaScript 中编写一些逻辑,我必须在其中根据 REGEX 模式检查输入内容:

"^[a-zA-Z0-9_]*$"  //Alpha-numeric and _

逻辑差不多完成了,我只是在过滤功能键 DEL 时遇到了一点问题, 我的逻辑是这样的:

var FunctionsKey = new Array(8, 9, 13, 16, 35, 36, 37, 39, 46);

function keypressValidation(key) {
            if (config.regexExp != null) {
                if ($.inArray(key, FunctionsKey) != -1) {
                    return true;
                }
                else {
                    var keyChar = String.fromCharCode(key);
                    return RegexCheck(keyChar);
                }
            }
            return true;
        }

如果 KeyCode 是数组中的一个,我让它通过,如果不是,我得到 char 并将它与 REGEX 进行比较。 问题是:在某些浏览器中,DEL 和“.” (句点符号)具有相同的 key 代码 46。

那么是否有更好的逻辑来过滤功能键,或者我必须为这种情况编写一个条件,也许从数组中删除 46 并尝试将其转换为 char,如果是 (.) 让它进入正则表达式功能如果不让它通过? 另一个问题是在某些浏览器中是否有更多共享 key 代码?

编辑:我建议的解决方案不会起作用,因为用户按下哪个键(DEL 或句点)并不重要,我总是将 (.) 作为 CHAR 至少在 OPERA 和 FF =( 上。

最佳答案

110为十进制键码,46为DEL键。

为了一些乐趣:把它放进去看看你击中了什么!编辑:添加了一个重点事件

   /* handle special key press */
$(document).ready(function() {
  function checkAKey(e) {
    var shouldBubble = true;
    switch (e.keyCode) {
      // user pressed the Tab 
      case 9:
        {
          alert("Tab hit, no bubble");
          shouldBubble = false;
          break;
        };
        // user pressed the Enter    
      case 13:
        {
          alert("Enter");
          break;
        };
        // user pressed the ESC
      case 27:
        {
          alert("Escape");
          break;
        };
    };
    /* this propogates the jQuery event if true */
    return shouldBubble;
  };

  $("*").keydown(function(e) {
    return checkAKey(e);

  });
});

$(document).ready(function() {
  /* handle special key press */
  function checkFieldKey(e, me) {
    var shouldBubble = true;
    switch (e.keyCode) {
      // user pressed the Enter
      case 13:
        {
          $(me).blur();
          $("#somewhereElse").focus();
          shouldBubble = false;
          break;
        };
    };
    /* this propogates the jQuery event if true */
    return shouldBubble;
  };
  /* user pressed special keys while in Selector */
  $("#myField").keydown(function(e) {
    return checkFieldKey(e, $(this));
  });
});

关于JavaScript Keycode 46 是 DEL 功能键还是 (.) 句号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859587/

有关JavaScript Keycode 46 是 DEL 功能键还是 (.) 句号?的更多相关文章

  1. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  2. ruby-on-rails - Ruby 流量控制 : throw an exception, 返回 nil 还是让它失败? - 2

    我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id

  3. ruby - 使用哪个,eruby 还是 erb? - 2

    eruby和erb有什么区别?哪些考虑因素会促使我选择其中之一?我的应用程序正在为网络设备(路由器、负载平衡器、防火墙等)生成配置文件。我的计划是对配置文件进行模板化,在源文件中使用嵌入式ruby​​(通过eruby或erb)来执行诸如迭代生成路由器的所有接口(interface)配置block之类的操作(这些block都非常相似,仅在标签上有所不同和IP地址)。例如,我可能有这样一个配置模板文件:hostnamesample-routerlogging10.5.16.26当通过嵌入式ruby​​解释器(erb或eruby)运行时,会产生以下输出:hostnamesample-rout

  4. ruby-on-rails - rails 功能测试 - 2

    在Rails自动生成的功能测试(test/functional/products_controller_test.rb)中,我看到以下代码:classProductsControllerTest我的问题是:方法调用products()在哪里/如何定义?products(:one)到底是什么意思?看代码,大概意思是“创建一个产品”,但是它是如何工作的呢?注意我是Ruby/Rails的新手,如果这些是微不足道的问题,我深表歉意。 最佳答案 如果您查看test/fixtures文件夹,您会看到一个products.yml文件。这是在您创建

  5. ruby-on-rails - 带句点(或句号)的 Rails 查询字符串。 - 2

    我目前正在尝试了解RoR。我将两个字符串传递到我的Controller中。一个是随机的十六进制字符串,另一个是电子邮件。该项目用于对数据库进行简单的电子邮件验证。我遇到的问题是当我输入如下内容来测试我的页面时:http://signup.testsite.local/confirm/da2fdbb49cf32c6848b0aba0f80fb78c/bob.villa@gmailcom我在:email的参数散列中得到的全部是'bob'。我在gmail和com之间留下了.,因为那样会导致匹配根本不起作用。我的路由匹配如下:match"confirm/:code/:email"=>"conf

  6. ruby-on-rails - 功能测试 Authlogic? - 2

    在我的一些Controller中,我有一个before_filter检查用户是否登录?用于CRUD操作。application.rbdeflogged_in?unlesscurrent_userredirect_toroot_pathendendprivatedefcurrent_user_sessionreturn@current_user_sessionifdefined?(@current_user_session)@current_user_session=UserSession.findenddefcurrent_userreturn@current_userifdefine

  7. ruby - Ruby 中允许 "p *1..10"打印出数字 1-10 的功能是什么? - 2

    require'pp'p*1..10这会打印出1-10。为什么这么简洁?您还可以用它做什么? 最佳答案 它是“splat”运算符。它可用于分解数组和范围并在赋值期间收集值。这里收集赋值中的值:a,*b=1,2,3,4=>a=1b=[2,3,4]在此示例中,内部数组([3,4])中的值被分解并收集到包含数组中:a=[1,2,*[3,4]]=>a=[1,2,3,4]您可以定义将参数收集到数组中的函数:deffoo(*args)pargsendfoo(1,2,"three",4)=>[1,2,"three",4]

  8. ruby-on-rails - Ruby on Rails - 参数是方法还是散列? - 2

    所以,我正在尝试RubyonRails指南的入门部分here.我不明白line在本教程中。引用它:Theparamsmethodistheobjectwhichrepresentstheparameters(orfields)cominginfromtheform.我以前确实有一些Rails方面的经验,而且我一直假设params是一个散列。但这里他们称之为方法,它是一个对象。params是方法还是哈希?还有,在ruby中,方法也是对象吗? 最佳答案 params是一个返回ActionController::Parameters对象的

  9. 适用于Web开发的Python还是Ruby? - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML

  10. ruby - 现代计算机的功能是否不足以处理字符串而无需使用符号(在 Ruby 中) - 2

    我读过的关于Ruby符号的每一篇文章都在谈论符号相对于字符串的效率。但是,这不是1970年代。我的电脑可以处理一些额外的垃圾收集。我错了吗?我拥有最新最好的奔腾双核处理器和4GBRAM。我认为这应该足以处理一些字符串。 最佳答案 您的计算机可能能够处理“一点点额外的垃圾收集”,但是当“一点点”发生在运行数百万次的内部循环中时呢?如果它在内存有限的嵌入式系统上运行呢?有很多地方你可以随意使用字符串,但在某些地方你不能。这完全取决于上下文。 关于ruby-现代计算机的功能是否不足以处理字符串

随机推荐