經(jīng)常處理金額,對于輸入需要做驗證處理,下面給出正則表達式和解釋:
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})?$/
^表示以什么開頭 我們這里是 - ,后面的?是表示“-”出現(xiàn)一次或者零次
(([1-9]{1}\d*)|([0]{1})) 表示不以0開頭的數(shù)字組合或者僅出現(xiàn)一個0
(\.(\d){1,2})?表示小數(shù)點后兩位,出現(xiàn)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());