gpt4 book ai didi

javascript - 正则表达式帮助 Angular 过滤器突出显示 html 中的匹配文本

转载 作者:行者123 更新时间:2023-12-03 10:30:12 27 4
gpt4 key购买 nike

我有这个可以工作,但是正则表达式与 html 标签匹配,有什么方法可以让它忽略 html 标签。谁能帮我修改正则表达式,以便我的类仅应用于文本而不匹配 html 标签?

angular.module('my.filters')
.filter('highlight', function ($sce) {
return function (text, filterPhrase) {
if (filterPhrase) text = text.replace(new RegExp('(' + filterPhrase + ')', 'gi'), '<span class="quick-find-highlight">$1</span>');
return $sce.trustAsHtml(text);
};
});

最佳答案

您可以尝试以下代码,其中我按标签拆分并仅在字符串不是标签时进行替换。

angular.module('my.filters')
.filter('highlight', function($sce) {
return function(text, filterPhrase) {
if (filterPhrase) {
var tag_re = /(<\/?[^>]+>)/g;
var filter_re = new RegExp('(' + filterPhrase + ')', 'gi');
text = text.split(tag_re).map(function(string) {
if (string.match(tag_re)) {
return string;
} else {
return string.replace(filter_re,
'<span class="quick-find-highlight">$1</span>');
}
}).join('');
}
return $sce.trustAsHtml(text);
};
});

关于javascript - 正则表达式帮助 Angular 过滤器突出显示 html 中的匹配文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com