我想检查给定输入是否是有效的整数范围。
[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+$/
答案 0 :(得分:1)
您的regex
仅检查子字符串/包含。
使用主播^
:以$
开头:以。结尾。
/^\d+-\d+$/
<强>解释强>
/
:regex
^
:以\d+
:匹配一个或多个数字-
:匹配-
literal $
:结尾
<input onblur="alert(/^\d+-\d+$/.test(this.value))">
<强>更新强>
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