角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'
是否有我需要改变我的正确结果
答
的代码一些改变任何东西
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;
};
});
更改为 在RegExp中使用ig reg表达式搜索文本的空间格式