最近我在学习正则表达式,写了匹配货币的:
☆有两种验证方法:
第一种货币中不带“,“
((^[-]?([1-9]\d*))|^0)(\.\d{1,2})?$|(^[-]0\.\d{1,2}$)
第二种货币中能带千分符(英式逗号)时必须带上
(^[-]?[1-9]\d{0,2}($|(\,\d{3})*($|(\.\d{1,2}$))))|((^[0](\.\d{1,2})?)|(^[-][0]\.\d{1,2}))$
------------------------------------以下是详细说明----------------------------------
------------------------------------第一种----------------------------------------------
第一种:货币中不带“,“
((^[-]?([1-9]\d*))|^0)(\.\d{1,2})?$|(^[-]0\.\d{1,2}$)
允许负数、若有小数点则精确小数点后两位
允许情况:0、-0.2、-0.22、0.5、0.55、7、-7、-67634534536456.3、-22456.56、78655
不允许情况:-0(负零)、包含-(负号).(小数点)和数字外的其他符号、0213.22、07等等 .........总之格式不对的都不行
分段逻辑:(蓝字部分是要说明部分)
((^[-]?([1-9]\d*))|^0)(\.\d{1,2})?$|(^[-]0\.\d{1,2}$):
(正负号可开头且后面必须是1-9的数字,数字后面可以跟零