2017-10-16 4 views
1

enter image description here角度JSハイライトフィルタのハイライトのテキストも、この蛍光ペンで

私のハイライトフィルタ

app.filter('highlightWord', function() { 
return function (isSectionData, selectedWord) { 
    if (!isSectionData) return ''; 
    // var items = selectedWord.split(" "); 
    var items = selectedWord.trim().replace(/ OR /g, ' ').replace(/ AND /g, ' ').replace(/ - /g, '').replace(/-/g, '').replace(/"/g, '').split(' '); 
    for (var i = 0, len = items.length; i < len; i++) { 
     var pattern = new RegExp(items[i], "gi"); 
     if (isSectionData && items[i] != "") { 
      isSectionData = isSectionData.replace(pattern, '<span class="highlighted">' + items[i] + '</span>'); 
     } 
    } 
    return isSectionData; 
};}); 

をテキストを変更するには、 正常に動作しているが、いくつかの場合には、それは次のように私のHTMLの段落

を変更しますハイライト検索の世界で「類似」のような「MI」の単語を検索して強調表示し、「siMIlar」に変更します

は、私が正しい私の結果のためのコードの

答えて

0

いくつかの変更を変更する必要があるすべてのものがある

app.filter('highlightWord', function() { 
return function (isSectionData, selectedWord) { 
    if (!isSectionData) return ''; 
    // var items = selectedWord.split(" "); 
    var items = selectedWord.trim().replace(/ OR /g, ' ').replace(/ AND /g, ' ').replace(/ - /g, '').replace(/-/g, '').replace(/"/g, '').split(' '); 
    for (var i = 0, len = items.length; i < len; i++) { 
     var pattern = new RegExp(' (' + items[i] + ')', "ig"); 
     if (isSectionData && items[i] != "") { 
      isSectionData = isSectionData.replace(pattern, function (match) { 
       return ' <span class="highlighted">' + match + '</span> '; 
      }); 
     } 
    } 
    return isSectionData; 
}; 

});

変更点は ig reg形式のRegExpでスペースを含むパターン検索テキスト