【问题标题】:How to prevent users writing with caps lock?如何防止用户使用大写锁定书写?
【发布时间】:2012-06-29 21:40:49
【问题描述】:

我不太喜欢用 Caps Lock 写作的人。除了厌恶之外,它还破坏了整个应用程序。我想知道如何防止用户用大写锁定写所有字符。由于特殊名称和缩写,我不能强制所有文本为小写。我应该使用什么逻辑?

【问题讨论】:

  • 如果你这么不喜欢大写字母,为什么要对我们提出一个全大写字母的问题?
  • 我不认为你可以,因为算法必须理解用户可能键入的所有特殊名称和缩写。强制标题大写或句子大写很容易,但这些会破坏具有特定名称(McLaren)或类似名称的人。也许您可以使用允许的缩写白名单。
  • @HighPerformanceMark 仅用于测试 :)

标签: algorithm lowercase capslock


【解决方案1】:

您可以检查一个单词中有多少个大写字符,然后限制它。上面有人给出了像“迈凯轮”这样的名字的例子,这样就可以了。不利的一面是,如果你把最大值放在 3 上,'LOL' 仍然是可能的。 可行的方法是将单词“McLaren”的长度设为 7,然后将其上限设置为 20%,这使得更长的单词可以有更多的大写字符,但不是全部大写。 (没有什么能完全阻止它,但这会让他们更难。)

有趣的是,今天是国际大写锁定日。 :)

【讨论】:

    【解决方案2】:
    keypress: function(e) {
        var ev = e ? e : window.event;
        if (!ev) {
            return;
        }
        var targ = ev.target ? ev.target : ev.srcElement;
        // get key pressed
        var which = -1;
        if (ev.which) {
            which = ev.which;
        } else if (ev.keyCode) {
            which = ev.keyCode;
        }
        // get shift status
        var shift_status = false;
        if (ev.shiftKey) {
            shift_status = ev.shiftKey;
        } else if (ev.modifiers) {
            shift_status = !!(ev.modifiers & 4);
        }
    
        // At this point, you have the ASCII code in "which", 
        // and shift_status is true if the shift key is pressed
    }
    

    来源--http://24ways.org/2007/capturing-caps-lock

    【讨论】:

      【解决方案3】:

      如果大写字母的数量比小写字母的数量多 30 个以上,请礼貌地拒绝他们的帖子(解释原因)。

      不要在 FORTRAN 论坛上实现此功能

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 2022-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多