【问题标题】:AngularJS number filter greater than 1000AngularJS数字过滤器大于1000
【发布时间】:2016-03-20 19:48:00
【问题描述】:

在 Angular 中我有这一行

<input type="number" value="{{ price.fare + price.tax | number:2 }}" />

但是一旦price.fareprice.tax 加起来1000,我就会得到这个错误:

The specified value "1,000.00" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

我该如何解决这个问题?

【问题讨论】:

  • 验证错误已经发生,因为type="number" 只需要数字字段,并且超过1000 它会在字段值中添加, .. 你应该选择this answer 来实现你想要的
  • 我不明白你想做什么。是否要过滤输入以使用户无法插入大于 1000 的值?
  • 用户应该能够插入 > 1000 的值。我希望看到 2 位数字和逗号分隔的数千位。
  • 所以你需要使用文本输入。逗号不适合 type=number 的验证
  • 发布了我自己的做法@PankajParkar ...

标签: angularjs html


【解决方案1】:

删除 type=number 列中的总数。 Plunker 在这里 - https://plnkr.co/edit/7cY2Lm?p=preview

  <div ng-controller="myController as price">
      <h1>AngularJS number filter greater than 1000</h1>
      <a href="http://stackoverflow.com/questions/36118671/angularjs-number-filter-greater-than-1000">Stack Overflow </a>
      <br/>
      Fare: <input type="number" ng-model="price.fare" />
      <br/>
      Tax: <input type="number" ng-model="price.tax" />
      <br/>
      Total: <input value="{{ price.fare + price.tax | number:2 }}" />
      <br/>
    </div>

控制器:

myApp.controller('myController', function($scope) {
  this.fare = 990;
  this.tax = 20;
});

【讨论】:

    【解决方案2】:

    解决了类似类型的错误'指定的值“xxxx”不是一个有效的数字。该值必须与以下正则表达式匹配:-?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?'通过将 value 替换为 html 标记中的 ng-value

    【讨论】:

      【解决方案3】:

      感谢您的回复。我想出了以下解决方案,它按我需要的方式工作:

      .filter('currencyFilter', ['$filter', function() {
      
        return function(amount) {
          var value = amount.toString();
      
          if(value.indexOf('.') > -1){
            value = value.substr(0, value.indexOf('.') + 3);
          }
      
          value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
      
          return value;
        };
      }]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2021-09-30
        • 2013-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多