【问题标题】:Format / filter an output with regular expression in Angular.js在 Angular.js 中使用正则表达式格式化/过滤输出
【发布时间】:2014-11-13 19:11:16
【问题描述】:
鉴于此:
<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'
【问题讨论】:
标签:
angularjs
filter
format
angularjs-ng-repeat
【解决方案1】:
您可以使用正则表达式去除除数字以外的所有字符:
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