javascript正则表达式编号范围格式检查

时间:2015-08-06 03:59:57

标签: javascript regex number-formatting

我想检查给定输入是否是有效的整数范围。

[0-9]-{1}[0-9]

上述正则表达式在某些情况下无效。

例:
    10 //假。 - 按预期工作
    10-20 //真的。 - 按预期工作
    h-g // false。 - 按预期工作
    10-20- //是的。 - 应该是假的     10-20-30 //是的。 - 应该是假的

更新2:检查逗号(,)分隔输入

现在,相同的输入文本字段也可以允许逗号(,)分隔输入。例如。 10,20,30也允许。 rangePattern = new RegExp('^[0-9]*,[0-9]*$');是不允许我给一个以上的逗号。如何允许悔改。

例:
     10,20有效。
     10,20,30有效。
     10,20,无效。
     10,20-30无效。

更新3:正则表达式/^(\d+,)*\d+$/不适用于输入10 ,,, 20 如何解决这个问题?

解决:
   {1} - 只允许一次。
    正则表达式应为/^(\d+,{1})*\d+$/

1 个答案:

答案 0 :(得分:1)

您的regex仅检查子字符串/包含。

使用主播^:以$开头:以。结尾。

/^\d+-\d+$/

<强>解释

  1. /regex
  2. 的分隔符
  3. ^:以
  4. 开头
  5. \d+:匹配一个或多个数字
  6. -:匹配- literal
  7. $:结尾
  8. jsfiddle Demo

    <input onblur="alert(/^\d+-\d+$/.test(this.value))">

    RegEx101 Demo

    <强>更新

    var rangePattern = new RegExp('/^[0-9]*-[0-9]*$/');
    pass = rangePattern.test(rangeValue);
    

    使用/构造函数时,不需要RegExp分隔符。

    使用

    var rangePattern = new RegExp('^[0-9]*-[0-9]*$');
    

    更新2

    匹配以逗号分隔的数字:

    /^(\d+,+)*\d+$/g
    

    RegEx101 Demo