我正在处理交易表单。在表单中,有一个字段名称Amount。我正在使用这个ng-pattern,即ng-pattern="/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{1,2})?$/"
,它只允许带有2个十进制值的数字。此外,0也不符合此输入模式。
<input type="text" ng-model="copayAmount" ng-pattern="/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{1,2})?$/" maxlength="9" required>
上面的表达式允许9位数值,2位十进制值。但我只想要3位数,带有2位小数值。
我想只有数字的ng-pattern应该只在3位数(不超过3位数)内有效,带有2位十进制值,即999.99(0应该无效)。
请帮忙。感谢。
答案 0 :(得分:0)
您的模式有效,您可以从https://regex101.com/r/XaumOY/1
查看$scope.numberPattern = (function() {
var regexp = /^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{1,2})?$/;
return {
test: function(value) {
if( $scope.checkedumber=== false ) {
return true;
}
return regexp.test(value);
}
};
})();
在HTML中,不需要进行任何更改:
<input type="text" ng-model="..." ng-required="checkedumber"
ng-pattern="numberPattern" />
答案 1 :(得分:0)
伙计我已经为这种情况实施了模式:
ng-pattern="/^[1-9][0-9]{0,2}(\d{3}[-.]?:,?[0-9]{3}){0,3}(?:\.[0-9]{1,2})?$/"
此模式允许数字大于0,数字为1到3位&amp; 2十进制值。