gpt4 book ai didi

javascript - 只允许一定数量的数字作为小数整数和一定数量的小数的函数

转载 作者:行者123 更新时间:2023-12-03 05:37:00 28 4
gpt4 key购买 nike

我想知道你们是否可以帮助我在 Javascript 中构建一个函数,该函数在按键事件中执行,以防止整数位数超过 10 位,小数位数超过 2 位。

Correct format: 1234567890.12 (10 digits as integer and 2 decimal)
Wrong format: 123456778901.123 (11 digits as integer and 3 decimal)

如果用户输入的整数超过 10 位,则应返回 false 以不添加它,而是保留 2 位小数(如果已定义)。

我会自己做,但我没有主意了:(

这就是我正在尝试的,但它从来没有让我尊重小数点后两位。

const theIntegerNumber = ($scope[ngModelName] - ($scope[ngModelName] % 1).toFixed(2)).toFixed(0);

if( theIntegerNumber.length >= 10){
$scope[ngModelName] = parseFloat($scope[ngModelName]).toFixed(2);
$event.preventDefault();
}
// I am using angular tho.

编辑:

<input ng-model="__incomeUnitAmount" ng-keypress="filterValueAcceptedData('__incomeUnitAmount', '__incomeUnitAmount_error_format', '10Digit2Decimal', $event);" type="text" name="incomeUnitAmount-amount" >

最佳答案

使用正则表达式:

var regex = new RegExp("^\\d{0,10}\.\\d{2}$");

isValidFormat = function(str) {
return regex.test(str);
}

console.log('%s: %s', '1234567890.10', isValidFormat("1234567890.10"));
console.log('%s: %s', '123456778901.123', isValidFormat("123456778901.123"));

编辑:

该模式已更新,使点和数字的小数部分可选(因为点和小数通常不会立即由用户输入)。

对于 Angular,使用 ng-pattern 指令:

function formCtrl($scope){
$scope.onSubmit = function(){
alert("form submitted");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<form name="myForm">
<input type="text" ng-model="intValue" name="int_field" ng-pattern="/^\d{1,10}\.?\d{0,2}$/" required><br/>
<span ng-show="myForm.int_field.$error.pattern">Not a valid number!</span><br/>
<tt>myForm.price_field.$error.pattern = {{myForm.int_field.$error.pattern}}</tt><br/>

</form>
</div>

关于javascript - 只允许一定数量的数字作为小数整数和一定数量的小数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40687417/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com