1

鉴于这种:

        <span ng-repeat="extra in extras">
            <br>
            <input type="checkbox" ng-click="addExtra()"  value="{{extra.id}}" >{{extra.name}} - <strong>{{extra.real_price}}</strong>
        </span>

如何使 {{extra.real_price}} 使用过滤器仅输出数字?

示例:extra.real_price 为 'from 400€' 转换为 '400'

4

1 回答 1

2

您可以使用正则表达式去除除数字以外的所有字符:

app.filter('onlyNumbers', function () {
    return function (item) {
      return item.replace(/[^\d|^,|^.]/g, '');
    }
  });

正则表达式可以被阅读:替换所有不是数字、逗号或点的字符。

请注意,当您使用货币值时,点和逗号都应该是可接受的值。

这些是使用和输出的一些示例:

{{ '23345€' | onlyNumbers }}       => 23345
{{ '$23345' | onlyNumbers }}       => 23345
{{ '$23345.00' | onlyNumbers }}    => 23345.00
{{ '23345,00 €' | onlyNumbers }}   => 23345,00
于 2014-11-13T11:11:16.997 回答