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

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

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

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

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

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

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

等价于 [ \f\n\r\t\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}))$)*$

 

posted on 2015-01-30 13:55  守望星空  阅读(579)  评论(0编辑  收藏  举报

导航