我正在使用数字过滤器在我的AngularJs应用程序中显示使用逗号格式化的数字,并使用指令突出显示结果中搜索到的字符串。
代码:
if (phrase) text = text.replace(new RegExp('('+phrase+')', 'gi'), '<span class="highlighted">$1</span>');
当用户输入123时,我需要显示 1,23 ,456。遇到逗号时会搞砸......
是否有任何正则表达式来实现这一目标?或任何内置的角度方式..? 这是plunk
答案 0 :(得分:1)
我将高亮过滤器更改为此(为phrase
中的每个字符添加&#39;,?&#39;):
angular.module('AngApp')
.filter('highlight', function($sce) {
return function(text, phrase) {
if(typeof(text) != 'string') text = text.toString();
if (phrase) {
var regexp = '';
for(var i = 0; i < phrase.length; i++) {
regexp += phrase[i] + ',?';
}
text = text.replace(new RegExp('('+regexp+')', 'gi'),
'<span class="highlighted">$1</span>')
}
return $sce.trustAsHtml(text)
}
});
更新了plnkr