价格数据保留2位小数(可验证正数3位有分号隔开)的正直表达式

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。

该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

这里说一下正则表达式表示空的方法:
在写个正则表达式的时候需要控制输入的字符串为数字,但是不是必须输入,可以为空。

如果用("^\d+$")只校验数字的话,在不输的情况下也不会通过。

所以在这个正则表达式后面添加了匹配任何空白字符的元字符(s),此时的表达式为("^\d+|\s*$"),

这种情况下因为元字符(s)匹配的是所有的空白字符,包括空格、制表符、换页符等等。

等价于 [ f v]。似乎也不符合情况。

最后我们可以想,去掉这些字符的所有空白字符就剩下空了。

因此表达式可以写成这样(^\d+|(\s&&[^\f\n\r\t\v])*$)。意思应该可以看明白的吧。

经验证空格什么的不会通过,但是不输入的话可以通过。

价格不能为空时数据保留2位小数(可验证正数3位有分号隔开):

^((d{1,3}(,d{3})+?|d+)(.d{2})?|(.d{2}))$

价格为空时或者数据保留2位小数(可验证正数3位有分号隔开):

^(((d{1,3}(,d{3})+?|d+)(.d{2})?|(.d{2}))$)*$

原文地址:https://www.cnblogs.com/liuwj/p/4262200.html