javascript - 正数的正则表达式,有两个浮点数,不前导零
问题描述
我需要为数字输入编写验证。
接受号码:
0,21
0
0,3
78,21
8934
不允许:
00
0,323
-1
021
解决方案
尝试模式^(?:0,\d\d?|[1-9]\d*(?:,\d\d?)?|0|)$
解释:
^
- 匹配字符串的开头
(?:...)
- 非捕获组
0,\d\d?
- 逐字匹配0,
,然后匹配一位或两位数字
|
- 交替(右侧或左侧的匹配模式)
[1-9]\d*(?:,\d\d?)?
- 匹配非零数字[1-9]
,然后匹配零个或多个数字\d*
,然后可选(由于?
末尾的运算符),\d\d?
,所以逗号后跟一个或两个数字
0
0
-从字面上匹配
(?:...|)
- 交替中的最后一个选项匹配空字符串
$
- 匹配字符串结尾
var myArray = ['0,21', '78,21', '8934', '', '00', '0,323', '-1', '021', '0,3', '1,3', '0'];
for(var i of myArray)
console.log(`${i} matches: ${/^(?:0,\d\d?|[1-9]\d*(?:,\d\d?)?|0|)$/.test(i)}`);
推荐阅读
- python - 为什么我的拆分没有拆分每个元素?
- javascript - textarea 自动调整大小无法正常工作
- mercurial - TortoiseHG 自定义工具中可以使用哪些参数?
- swift - Swift - 如何弃用 SPM 库中的函数
- r - 如何根据每个 ID 中不同数量的研究在 r 中显示我的结果
- azure-devops - 有关任务条件的 Azure Devops 管道问题
- python - 标记数据框列并为结果创建新的数据框
- r - R中的列/行
- r - 在估计不同类别的平均值时获得相同的值
- visual-studio - Visual Studio 2019:关闭浏览器窗口时停止调试器,但在调试停止时不关闭浏览器