金额的相关正则表达式经常处理金额,对于输入需要做验证处理,下面给出正则表达式和解释: javascritpt的应用:
var patrn=/^(-)?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/;
if (!patrn.exec('-012312123.23')) { alert('false'); }else{ alert('true'); }
解读/^(-)?(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/ ^表示以什么开头 我们这里是 - ,后面的?是表示“-”出现一次或者零次 (([1-9]{1}\d*)|([0]{1})) 表示不以0开头的数字组合或者仅出现一个0 (\.(\d){1,2})?表示小数点后两位,出现0次或者一次 必须是大于0的金额正则表达式:
var patrn=/^(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/;
Java里的应用: Pattern pattern = Pattern.compile("^(-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$");
Matcher matcher = pattern.matcher("-0.11");
System.out.println(matcher.matches());