angularjs中基于模式的字符串替换
我试图根据一个模式进行替换,但我遇到了错误angularjs中基于模式的字符串替换,angularjs,Angularjs,我试图根据一个模式进行替换,但我遇到了错误 {{n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}} n是一个数字 错误:[$parse:lexerr]Lexer错误:出现意外的下一个字符 表达式中的第36-36[]列 angular可能很难将正则表达式内联到模板中,您可以将replace语句放入作用域上的helper函数中: $scope.convert = function(val) { return val.toString().r
{{n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
n是一个数字
错误:[$parse:lexerr]Lexer错误:出现意外的下一个字符
表达式中的第36-36[]列
angular可能很难将正则表达式内联到模板中,您可以将replace语句放入作用域上的helper函数中:
$scope.convert = function(val) {
return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
然后在模板中调用该函数:
{{ convert(n) }}
另一个选项是创建自定义过滤器:
app.filter('convert', function() {
return function(input) {
return input.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};
});
然后通过管道将值传递到该过滤器:
{{ n | convert }}
尝试在作用域函数中执行replace,并使用
ngbindhtml
而不是{}
表示法。