javascript 正则表达式数字范围格式检查
javascript regex number range format check
我想检查给定的输入是否是有效的整数范围。
[0-9]-{1}[0-9]
上述正则表达式在某些情况下不起作用。
示例:
10 // 错误。 - 按预期工作
10-20 // 正确。 - 按预期工作
h-g // 错误。 - 按预期工作
10-20- // 正确。 - 应该是 false
10-20-30 // 正确。 - 应该是 false
更新 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+$/
您的 regex
只检查 substring/contains。
使用锚点^
:开始于和$
:结束于.
/^\d+-\d+$/
解释:
/
:regex
的分隔符
^
: 开头为
\d+
:匹配一个或多个数字
-
:匹配-
文字
$
:以 结尾
<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
我想检查给定的输入是否是有效的整数范围。
[0-9]-{1}[0-9]
上述正则表达式在某些情况下不起作用。
示例:
10 // 错误。 - 按预期工作
10-20 // 正确。 - 按预期工作
h-g // 错误。 - 按预期工作
10-20- // 正确。 - 应该是 false
10-20-30 // 正确。 - 应该是 false
更新 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+$/
您的 regex
只检查 substring/contains。
使用锚点^
:开始于和$
:结束于.
/^\d+-\d+$/
解释:
/
:regex
的分隔符
^
: 开头为\d+
:匹配一个或多个数字-
:匹配-
文字$
:以 结尾
<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