在Angular.js中使用正则表达式格式化/过滤输出

时间:2013-07-19 16:00:10

标签: angularjs filter format angularjs-ng-repeat

鉴于此:

        <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是'从400€'转换为'400'

1 个答案:

答案 0 :(得分: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
相关问题