Javascript 使用数组按单词进行筛选

Javascript 使用数组按单词进行筛选,javascript,angularjs,Javascript,Angularjs,我目前有一段代码,允许我根据名称和标题过滤JSON对象。我有一个包含几个单词的数组,我想使用数组来制作相同的过滤器。我不想使用输入文本,我需要使用数组 我想按数组中的每个单词进行筛选 $scope.arrayFilter=["is","mom","beautifull"]; 在启动应用程序时,是否可以默认执行此筛选?。多谢各位 <li ng-repeat="item in data "> <span ng-bind-html="item.title | highlight

我目前有一段代码,允许我根据名称和标题过滤JSON对象。我有一个包含几个单词的数组,我想使用数组来制作相同的过滤器。我不想使用输入文本,我需要使用数组

我想按数组中的每个单词进行筛选

$scope.arrayFilter=["is","mom","beautifull"];

在启动应用程序时,是否可以默认执行此筛选?。多谢各位

<li ng-repeat="item in data ">
 <span ng-bind-html="item.title | highlight:search"></span>
</li>

$scope.arrayFilter=["is","mom","beautifull"];
$scope.data = [{
    title: "mom is beautifull"
  }, {
    title: "my mom is great"
  }, {
    title: "I hate the matematics"
}];

.filter('highlight', function($sce) {
     return function(text, phrase) {
         if (phrase) text = text.replace(new RegExp('('+phrase+')', 'gi'),
            '<span class="highlighted">$1</span>')

          return $sce.trustAsHtml(text);
     }
 });
  • $scope.arrayFilter=[“是”、“妈妈”、“美丽的”]; $scope.data=[{ 标题:“妈妈很漂亮” }, { 标题:“我妈妈很棒” }, { 标题:“我讨厌数学” }]; .filter('highlight',函数($sce){ 返回函数(文本、短语){ 如果(短语)text=text.replace(新的RegExp(“(“+短语+”)”,“gi”), '$1') 返回$sce.trustAsHtml(文本); } });
    你需要将整个数组传递给你的过滤器,看看它是否在句子中,这里需要做一个小调整,将数组按正确的顺序排列,使句子匹配。否则,使用过滤器无法实现这一点

     $scope.arrayFilter=["mom","is","beautifull"];
    
    演示
    var-app=angular.module('testApp',[]);
    app.controller('testCtrl',函数($scope){
    $scope.arrayFilter=[“mom”、“is”、“beautifull”];
    $scope.data=[{
    标题:“妈妈很漂亮”
    }, {
    标题:“我妈妈很棒”
    }, {
    标题:“我讨厌数学”
    }];
    });
    应用过滤器('突出显示',功能($sce){
    返回函数(文本、数组过滤器){
    var stringToDisplay='';
    角度.forEach(数组过滤器,函数(键,值){
    if(文本包括(键)){
    stringToDisplay=stringToDisplay.concat(键).concat(“”);
    }
    })
    stringToDisplay=stringToDisplay.substring(0,stringToDisplay.length-1);
    返回$sce.trustAsHtml(text.replace(新的RegExp(stringToDisplay,'gi'),'$&'));
    }
    });
    
    .highlightedText{
    背景:黄色;
    }
    
    

  • 太好了。如果使用.push向数组中添加新词,是否会更新?。什么是“gi”。谢谢g修饰语:全局。所有匹配(第一次匹配时不返回)i修饰符:不敏感。不区分大小写的匹配(忽略[a-zA-Z]的大小写)@yavg发生了什么事?总是要按顺序排列数组吗?这不符合我真正的问题。单词应该按任何顺序排列,然后标记它们。