开发过程中遇到涉及金额的数字,金额要求是大于0的数,可以包括小数
。所以也就能包含0.5,0.50,0.01,1.01等等
这样的数字。
要写一个正则判断用户输入的金额是否合法,在网上找了很多正则,都没办法满足,网上大多数正则没办法过滤掉像:0、00、001、0.0、01.1、01.0等,有的还会屏蔽0.50这些类似数字,大家可以先自测一下。
所以最后捡起来几乎快忘掉的正则,自己写了一个:
/^([1-9]\d*(\.\d*[1-9][0-9])?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
或者:
/^([1-9]\d*(\.\d*)?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
自测是能够正常的输入大于0(包括像0.10,0.01,且屏蔽像00,0.0,001,01.0,01.1等)的数。
最后补上解析:
/^([1-9]\d*(\.\d*[1-9][0-9])?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
解析:
/
^