我有一些针对输入类型编号的客户端验证,
我已经尝试了2位数长度验证,但我如何才能验证特定的十进制数与regex列表?/^\d{1,2}(.\d{1,2})?$/
有效案例
5.2578.599.75
无效案例
88.1250.78
tez616oj1#
您可以将模式编写为:
^\d{1,2}\.(?:00|[72]5|33|67|50?)$
说明
^
\d{1,2}
\.
(?:
00|[72]5|33|67|50?
00
75
25
33
67
5
50
)
$
Regex demo
wa7juj8i2#
我将对各种允许的小数结尾使用交替:
^\d{1,2}\.(?:00|25|33|5|67|75)$
zte4gxcn3#
我不清楚您是否允许前导零。如果不允许,以下是一个解决方案:
const regex = /^(?:\d|[1-9]\d)\.(?:00|25|33|5|67|75)$/; [ '0.33', '5.25', '78.5', '99.75', '09.75', '88.12', '50.78' ].forEach(str => { console.log(str + ' => ' + regex.test(str)); });
输出量:
0.33 => true 5.25 => true 78.5 => true 99.75 => true 09.75 => false 88.12 => false 50.78 => false
正则表达式说明:
(?:\d|[1-9]\d)
(?:00|25|33|5|67|75)
or
3条答案
按热度按时间tez616oj1#
您可以将模式编写为:
说明
^
字符串开头\d{1,2}
匹配1位或2位数字\.
匹配点(?:
替代项的非捕获组00|[72]5|33|67|50?
匹配00
75
25
33
67
5
或50
)
关闭非捕获组$
字符串结束Regex demo
wa7juj8i2#
我将对各种允许的小数结尾使用交替:
zte4gxcn3#
我不清楚您是否允许前导零。如果不允许,以下是一个解决方案:
输出量:
正则表达式说明:
^
-字符串起点处的锚(?:\d|[1-9]\d)
-非捕获组:一位数或两位数10...99\.
-文字点(?:00|25|33|5|67|75)
-非捕获组:允许小数的局部or
$
--字符串末端的锚