检查金额的 ng-pattern 应该是 1 到 3 位数字和 2 个十进制值 (999.99)?

ng-pattern to check amount should be of 1 to 3 digit with 2 decimal value (999.99)?

我正在制作交易表格。在表单中,有一个字段名称 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 应该无效)。

请帮忙。谢谢

您的模式有效,您可以从 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" />

伙计们,我已经为这个案例实现了模式:

ng-pattern="/^[1-9][0-9]{0,2}(\d{3}[-.]?:,?[0-9]{3}){0,3}(?:\.[0-9]{1,2})?$/"

此模式允许大于 0 的数字为 1 到 3 位和 2 个十进制值。