正则表达式验证小数点前后的数字,不包括逗号
Regex to validate numbers before and after decimal excluding comma
我正在尝试验证不包括逗号的点前 13 位和点后 4 位的十进制数,即逗号不应计为数字。
有效案例
1,234,567,890,123.1234
1234567890123.1234
123456789012.1234
1234567890123.123
12345.123
1.2
0
有效案例
12345abc.23 // string or special characters not allowed
1,234,567,890,1231.1234
1,234,567,890,123.12341
12345678901231.1234
1234567890123.12341
当前正则表达式
^[0-9]{1,13}(\.[0-9]{0,4})?$
当前 Regex
正在将逗号计为一个数字。
任何帮助都会很棒。
在匹配点之前,您可以使用否定前瞻来断言右边的内容不是数字的 14 倍:
^(?!(?:[^.\s\d]*\d){14})-?\d+(?:,\d{1,3})*(?:\.\d{1,4})?$
说明
^
字符串开头
-?
可选连字符
(?!
否定前瞻,断言后面的不是
(?:[^.\s\d]*\d){14}
不匹配数字、空白字符或点 14 次
)
关闭前瞻
\d+
匹配 1+ 个数字
(?:,\d{1,3})*
匹配逗号、1-3 位数字并重复 0+ 次(或使用 \d+
)
(?:\.\d{1,3})?
可选部分,匹配一个点和1-4位数字
$
字符串结束
您可以只指定 , Like 的可选计数
^[0-9]{0,1}([,])?[0-9]{0,3}([,])?[0-9]{0,3}([,])?[0-9]{1,3}(\.[0-9]{0,3})?$
我正在尝试验证不包括逗号的点前 13 位和点后 4 位的十进制数,即逗号不应计为数字。
有效案例
1,234,567,890,123.1234
1234567890123.1234
123456789012.1234
1234567890123.123
12345.123
1.2
0
有效案例
12345abc.23 // string or special characters not allowed
1,234,567,890,1231.1234
1,234,567,890,123.12341
12345678901231.1234
1234567890123.12341
当前正则表达式
^[0-9]{1,13}(\.[0-9]{0,4})?$
当前 Regex
正在将逗号计为一个数字。
任何帮助都会很棒。
在匹配点之前,您可以使用否定前瞻来断言右边的内容不是数字的 14 倍:
^(?!(?:[^.\s\d]*\d){14})-?\d+(?:,\d{1,3})*(?:\.\d{1,4})?$
说明
^
字符串开头-?
可选连字符(?!
否定前瞻,断言后面的不是(?:[^.\s\d]*\d){14}
不匹配数字、空白字符或点 14 次
)
关闭前瞻\d+
匹配 1+ 个数字(?:,\d{1,3})*
匹配逗号、1-3 位数字并重复 0+ 次(或使用\d+
)(?:\.\d{1,3})?
可选部分,匹配一个点和1-4位数字$
字符串结束
您可以只指定 , Like 的可选计数
^[0-9]{0,1}([,])?[0-9]{0,3}([,])?[0-9]{0,3}([,])?[0-9]{1,3}(\.[0-9]{0,3})?$