<input type="text" class="form-control" ng-keyup="clearNoNum(state,'qgfee',1)" ng-model="state.qgfee" maxlength="10" dataType="Require" placeholder="请输入清关费 整数或两位小数">
$scope.clearNoNum = function (obj, attr, lei) {
if (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(".", "$#$").replace(/\./g, "").replace("$#$", ".");
//保证只有出现一个-而没有多个-
obj[attr] = obj[attr].replace(/\-{2,}/g, "-");
//保证-只出现一次,而不能出现两次以上
obj[attr] = obj[attr].replace("-", "$#$").replace(/\-/g, "").replace("$#$", "-");
//保证-后边不是.
if (obj[attr].charAt(0) == "-") {
if (obj[attr].charAt(1)) {
if (obj[attr].charAt(1) == ".") {
obj[attr] = obj[attr].replace(/[^\d-]/g, "");
}
}
}else{//保证 如果 - 不是第一位,则后面所有 - 都为""
obj[attr] = obj[attr].replace(/\-/g, "")
}
//保证0开头只有一个0
if (obj[attr].charAt(0) == 0 || obj[attr].charAt(0) == "-") {
var start = 0;
var end = 0;
if (obj[attr].charAt(1)) {
if (obj[attr].charAt(2)) {
if (obj[attr].charAt(0) == "-" && obj[attr].charAt(1) == 0 && obj[attr].charAt(2) != ".") {
for (var i = 2; i < obj[attr].length; i++) {
end = i;
if (obj[attr].charAt(i) != 0) {
break;
}
}
obj[attr] = obj[attr].substring(end, obj[attr].length);
obj[attr] = -obj[attr];
}
}
if (obj[attr]) {
if (obj[attr].charAt(1)) {
if (obj[attr].charAt(0) != "-" && obj[attr].charAt(1) != ".") {
for (var i = 1; i < obj[attr].length; i++) {
end = i;
if (obj[attr].charAt(i) != 0) {
break;
}
}
obj[attr] = obj[attr].substring(end, obj[attr].length);
}
}
}
}
}
//保留4位小数
if (lei == 4) {
if (obj[attr].indexOf(".") > 0) {
var dian = obj[attr].indexOf(".");
if (obj[attr].length > (dian + 5)) {
obj[attr] = obj[attr].substring(0, (dian + 5));
}
}
} else if (lei == 3) {
if (obj[attr].indexOf(".") > 0) {
var dian = obj[attr].indexOf(".");
if (obj[attr].length > (dian + 4)) {
obj[attr] = obj[attr].substring(0, (dian + 4));
}
}
} else if (lei == 2) {
if (obj[attr].indexOf(".") > 0) {
var dian = obj[attr].indexOf(".");
if (obj[attr].length > (dian + 3)) {
obj[attr] = obj[attr].substring(0, (dian + 3));
}
}
}else if (lei == 1) {
if (obj[attr].indexOf(".") > 0) {
var dian = obj[attr].indexOf(".");
if (obj[attr].length > (dian + 2)) {
obj[attr] = obj[attr].substring(0, (dian + 2));
}
}
}else{
if (obj[attr].indexOf(".") > 0) {
var dian = obj[attr].indexOf(".");
if (obj[attr].length > (dian)) {
obj[attr] = obj[attr].substring(0, (dian));
}
}
}
}
}