angularjs控制输入框只输入数字及最多输入两位小数

时间:2023-03-09 06:50:39
angularjs控制输入框只输入数字及最多输入两位小数

ps:示例中作用在循环中,其它的你可以按实际需求进行修改使用

<input type="text" ng-model="item.productNumber" maxlength="8" ng-keyup="clearNoNum(item,'productNumber')">

js:

// 用户输入校验
$scope.clearNoNum = function (obj, attr) {
//先把非数字的都替换掉,除了数字和.
obj[attr] = obj[attr].replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
obj[attr] = obj[attr].replace(/^\./g, "");
//保证只有出现一个.而没有多个.
obj[attr] = obj[attr].replace(/\.{2,}/g, "");
//只能输入两个小数
obj[attr] = obj[attr].replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
//保证.只出现一次,而不能出现两次以上
obj[attr] = obj[attr].replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
}