【问题标题】:Javascript textbox validation RegEx - Multiple integers (0 <= int <= 500), separated ONLY with single whitespaceJavascript 文本框验证 RegEx - 多个整数 (0 <= int <= 500),仅用单个空格分隔
【发布时间】:2019-11-19 11:07:37
【问题描述】:

我想要的:
#1 数组(长度是100,keydown如果已经是100就会被屏蔽空格s)

0 100 199 2 129 500 11 14 499


#2 只是一个 整数

499

所以,一个 空格是唯一的分隔符第一个字符不能是空格最后一个字符可以是空格数字


return /^\d*$/.test(value) && (value === "" || parseInt(value) <= 500


所以我尝试了上述函数(只有 1 个整数)和这些 RegEx:

/^(?=.*\d)[\d ]+$/
/^(\s*[0-9]+\s*)+$/

遗憾的是,这两个都不起作用。有什么建议吗?

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    我认为这是您正在寻找的正则表达式!

    var regex = /^(\b([0-9]|[1-9][0-9]|[1-4][0-9]{2}|500) ?){1,100}$/;
    return regex.test(value);
    

    解释

    • 在 [0, 500] 范围内匹配数字: \b([0-9]|[1-8][0-9]|9[0-9]|[1-4][0-9]{2}|500)\b
    • 在数字后添加条件空格:(\b([0-9]|[1-9][0-9]|[1-4][0-9]{2}|500)\b ?)
    • 添加量词 {1, 100}(1 到 100 个匹配项):(\b([0-9]|[1-9][0-9]|[1-4][0-9]{2}|500)\b ?){1,100}
    • 断言整行的条件:^(\b([0-9]|[1-9][0-9]|[1-4][0-9]{2}|500)\b ?){1,100}$

    【讨论】:

    • 我在 regex101 中尝试了你的答案。干得好,先生。这超出了我的范围(除非有一些逐步的解释——将不胜感激)。
    【解决方案2】:

    你也可以在空白处分割然后过滤

    input.split(" ").filter(n => n >= 0 && n <= 500)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2015-11-10
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      • 2021-01-25
      相关资源
      最近更新 更多