【发布时间】:2015-08-06 03:59:57
【问题描述】:
我想检查给定的输入是否是有效的整数范围。
[0-9]-{1}[0-9]
上述正则表达式在某些情况下不起作用。
示例:
10 // 错误。 - 按预期工作
10-20 // 是的。 - 按预期工作
h-g // 错误。 - 按预期工作
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+$/
【问题讨论】:
-
除了示例之外,您可能还想(用文字)定义预期范围是什么......例如,负数到正数
-10-20?20-10呢? -
问题陈述通过允许浮点数增加了复杂性。我修改了正则表达式以允许整数/浮点数
/^(\s*\d+|\d*\.\d+\s*,{1})+\s*\d+|\d*\.\d+\s*$/。这适用于除一种特定格式之外的所有类型的输入。例子。对于输入 1,2.5,3 它失败了。其实应该会过去的。
标签: javascript regex number-formatting