关于输出 999999.35 ,请帮助我?在带有html的angular或java脚本中意味着我想在6位数之后将小数点前的6位数限制为6位数,它不接受任何数字,小数点后限制最多2位数。请帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
有多种内置过滤器可用于角度,让我向您展示其中之一,
过滤器允许我们限制数字可以显示的小数位数。传递参数2,
我们将追加:2到数字过滤器:
<!-- Displays: 123.46 -->
{{ 123.456789 | number:2 }}
这不是您想要的确切答案,但您可以玩它,甚至可以制作自己的自定义过滤器,它会返回您想要的确切输出。
如果您想了解如何制作我们自己的自定义过滤器,请告诉我。
答案 1 :(得分:0)
使用此regex
匹配器验证您的号码
function isValid(number){
//return new RegExp(/^(\d{1,6}.\d{2})$/).test(number);//for any number
//return new RegExp(/^([9]{1,6}.\d{2})$/).test(number);//for only 9
return new RegExp(/^([9]{1,6}.\d{2})$/).test(number);//for less then 6 digits
}
console.log(isValid(9999.35));
console.log(isValid(999999.35));
console.log(isValid(99999.35));
console.log(isValid(999999.3545));
console.log(isValid(99999999.3545));
console.log(isValid(999999.95));
console.log(isValid(899999.35));
答案 2 :(得分:0)
以下是您正在寻找的答案,
我采用正则表达式允许前后6位数字和小数点后2位
如果模式失败,我已经指示限制输入
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
});
app.directive("validateWith", [function(){
return {
restrict: "A",
link: function($scope, $el, $attrs){
var regexp = eval($attrs.validateWith);
var origVal;
// store the current value as it was before the change was made
$el.on("keypress", function(e){
origVal = $el.val();
});
// after the change is made, validate the new value
// if invalid, just change it back to the original
$el.on("input", function(e){
if(!regexp.test($el.val())){
e.preventDefault();
$el.val(origVal);
}
});
}
}
}]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit()">
<input type="number" ng-model="price" name="price_field" required validate-with="/^\d{1,5}(\.\d{1,2})?$/">
<span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span>
<input type="submit" value="submit"/>
</form>
</div>
</body>
</html>
&#13;
请运行代码段
答案 3 :(得分:0)
您使用 ng-pattern 的想法是正确的。只需尝试将属性步骤添加到同一标记。
<input type="number" ng-model="price" name="price_field" ng-pattern="/^\d{0,6}(\.\d{1,2})?$/" required step="0.01">
step属性指定元素的合法数字间隔。