我对输入类型编号进行了一些客户端验证,
我尝试过使用2位长度验证,但如何使用regex验证特定的十进制数字列表?
/^\d{1,2}(.\d{1,2})?$/
有效案例
5.25
78.5
99.75
无效案例
88.12
50.78
发布于 2022-11-11 13:50:19
您可以将模式写成:
^\d{1,2}\.(?:00|[72]5|33|67|50?)$解释
^开始\d{1,2}匹配1或2位数字\.匹配一个点(?:非捕获组00|[72]5|33|67|50? match 00 75 25 33 67 5或50)关闭非捕获组$末端发布于 2022-11-11 13:50:45
对于各种允许的十进制结尾,我会使用替换:
^\d{1,2}\.(?:00|25|33|5|67|75)$发布于 2022-11-11 22:26:16
我不清楚你是否允许前导零。如果不是,这里有一个解决方案:
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对regex的解释:
^ --字符串开始处的锚(?:\d|[1-9]\d) --非捕获组:一位数字,或者两位数字10.99\. -文字点(?:00|25|33|5|67|75) --非捕获组:允许小数的局部or$ -字符串末端的锚https://stackoverflow.com/questions/74403459
复制相似问题