【问题标题】:Disable user of multiple same exact numbers in input box在输入框中禁用多个相同精确数字的用户
【发布时间】:2016-08-12 17:03:37
【问题描述】:

我这里有一个输入框

<input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" >

我想禁止用户在框中输入相同的数字?我怎样才能做到这一点 ?提前致谢

我不希望他们能够输入这样的数字

111111111 
or
55555555

【问题讨论】:

  • 您是否尝试自己编写一些代码?这听起来像是您希望有人为您解决的家庭作业。
  • 创建一个数组。在触发事件时将输入数字推入数组中,检查数组。你完成了

标签: javascript jquery html input


【解决方案1】:

您可以使用正则表达式来查找仅包含一个连续数字的字符串:

var validator = /\b(\d)\1+\b/

console.log(validator.test('111')) // true
console.log(validator.test('123')) // false
console.log(validator.test('121')) // false
console.log(validator.test('112')) // false

【讨论】:

    【解决方案2】:

    @edit 如果您不想让用户在键入时输入这些值,您可能只想在值等于 2 时进行验证。

    您可以监听输入元素的 keydown 事件并验证它的实际内容和按下的数字,如下所示:

    var inputNode = document.getElementById('my_account');
    
    inputNode.addEventListener('keydown', (event) => {
      var inputValue = event.key;
      var inputNodeValue = inputNode.value;
      var length = inputNodeValue.length;
    
      if (length === 1 && inputNodeValue[0] === inputValue) {
        event.preventDefault();
      }
    });
    

    如果您想在提交时进行验证,只需获取第一个字符的值并检查其他字符是否相等。

    【讨论】:

    • 这不允许一个数字输入两次
    • 看来你是对的,我的逻辑有一些错误。将尝试修复它。
    【解决方案3】:

    试试这个模式:

    &lt;input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" pattern="^(?!(\d)\1{8}).*"&gt;

    注意事项:

    • 你没有说你想禁止字母,如果你这样做,只需将.*替换为\d*
    • 我将其解释为“相同数字的九倍”。如果你想例如不允许“任何地方的3倍相同数字”,您需要将其更改为^(?!\d*(\d)\1{2,}).*
    • 如果您只想禁止数字的倍数而没有任何其他额外内容,请添加行终止正则表达式:^(?!(\d)\1*$).*

    “在任何地方都不是相同数字的 3 倍,但必须是数字”的示例:

    &lt;input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" pattern="^(?!\d*(\d)\1{2,})\d*"&gt;

    “不仅是同一个数多次,而且还是数”的例子:

    &lt;input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" pattern="^(?!(\d)\1*$)\d*"&gt;

    【讨论】:

    • 这不适用于第二个示例 55555555,其中 8 个连续数字而不是 9 个。
    • 我添加了注释,我稍微误解了我认为的预期允许数字。添加了一个更广泛匹配的示例。
    • 另请注意,并非所有主流浏览器都完全支持pattern 属性,尤其是Safari:developer.mozilla.org/en-US/docs/Web/HTML/Element/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2014-05-25
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多