金额
(1)判断某些值是否是金额(首字母不能为0,不能超过两位小数点,最后一位可以是小数点.,不在范围内的需要提醒)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
</style>
</head>
<body>
<input class="input" />
<div>处理后的值: <span class="filter"></span></div>
<script type="text/javascript">
var $input = document.querySelector('.input');
var $filter = document.querySelector('.filter');
$input.oninput = function (e) {
console.log('value',e.target.value)
$filter.innerHTML = testPrice(e.target.value,0,6666);
}
/* 判断某些值是否是金额(首字母不能为0,不能超过两位小数点,最后一位可以是小数点.,不在范围内的需要提醒) */
testPrice = function (num,min,max) {
var reg = new RegExp('^([1-9]\\d*|[0])(\\.\\d{0,2})?$','g');
if(!reg.test(num+'')){
return '<span style="color:red;">非法输入</span>';
}
var numFloat = parseFloat(num);
if(num < min){
return '<span style="color:red;">请输入大于'+min+'的数字</span>';
}
if(num > max){
return '<span style="color:red;">请输入小于'+max+'的数字</span>';
}
return num;
}
</script>
</body>
</html>
(2)在(1)的基础上附加条件:自动去除(除了0.00,0.,0.2,0.32等小于1的数)金额前面的0.
testPrice = function (num,min,max) {
var reg = new RegExp('^\\d+(\\.\\d{0,2})?$','g');
var regClear = new RegExp('^0+(?=[0-9])','g');
if(!reg.test(num+'')){
return '<span style="color:red;">非法输入</span>';
}
var numFloat = parseFloat(num);
if(num < min){
return '<span style="color:red;">请输入大于'+min+'的数字</span>';
}
if(num > max){
return '<span style="color:red;">请输入小于'+max+'的数字</span>';
}
return num.replace(regClear,'');
}