JavaScript - 搜索格式化的数字

时间:2016-06-23 13:30:02

标签: javascript angularjs

我正在使用数字过滤器在我的AngularJs应用程序中显示使用逗号格式化的数字,并使用指令突出显示结果中搜索到的字符串。

代码:

if (phrase) text = text.replace(new RegExp('('+phrase+')', 'gi'), '<span class="highlighted">$1</span>');

当用户输入123时,我需要显示 1,23 ,456。遇到逗号时会搞砸......

是否有任何正则表达式来实现这一目标?或任何内置的角度方式..? 这是plunk

1 个答案:

答案 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