正则表达式验证小数前后的数字,不包括逗号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式验证小数前后的数字,不包括逗号相关的知识,希望对你有一定的参考价值。
我试图验证之前的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+(?:,\d1,3)*(?:\.\d1,4)?$
说明
^
字符串的开头-?
可选连字符(?!
否定前瞻,断言以下不是(?:[^.\s\d]*\d)14
匹配不是数字,空白字符或点14次)
关闭前瞻\d+
匹配1+位数(?:,\d1,3)*
匹配逗号,1-3位数,重复0次以上(或使用\d+
)(?:\.\d1,3)?
可选部分,匹配点和1-4位数$
字符串的结尾
另一答案
您可以指定可选的计数,Like
^[0-9]0,1([,])?[0-9]0,3([,])?[0-9]0,3([,])?[0-9]1,3(\.[0-9]0,3)?$
以上是关于正则表达式验证小数前后的数字,不包括逗号的主要内容,如果未能解决你的问题,请参考以下文章
0到100(包括小数点,0和100)正则表达式怎么样写!急急。。 例如:80.6