繁体   English   中英

角度js荧光笔过滤器突出显示文本并更改文本

[英]angular js highlighter filter highlight text and change text also

在此处输入图片说明

我的高光滤镜

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;
    };
});

更改是带有ig reg表达式的RegExp中带有空格的模式搜索文本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM