Javascript RegExp-在搜索和突出显示时替换'html'标记

Javascript RegExp-在搜索和突出显示时替换'html'标记,javascript,jquery,html,css,regex,Javascript,Jquery,Html,Css,Regex,我正在使用regex执行一个搜索和突出显示过程,我面临的问题是,html标记太多搜索选项 由于html元素被替换,我得到的结果很糟糕。如何避免这种情况 下面是我搜索并将html文本替换为mark标记的模式 var src_str=$(“#test”).html(); var origional=$(“#备份”).html(); var searchIt=函数(文本){ console.log(文本); 变量标记=文本; 标记=标记。替换(/(\s+)/,“(]+>)*$1(]+>)*”; va

我正在使用
regex
执行一个搜索和突出显示过程,我面临的问题是,
html
标记太多搜索选项

由于
html
元素被替换,我得到的结果很糟糕。如何避免这种情况

下面是我搜索并将
html
文本替换为
mark
标记的模式

var src_str=$(“#test”).html();
var origional=$(“#备份”).html();
var searchIt=函数(文本){
console.log(文本);
变量标记=文本;
标记=标记。替换(/(\s+)/,“(]+>)*$1(]+>)*”;
var模式=新的RegExp(“(“+标记+”),“gi”);
src_str=src_str.replace(模式,“$1”);
src_str=src_str.replace(/([^]*)((]+>)+)([^]*)/,“$1$2$4”);
$(“#test”).html(src#u str);
}
var resetIt=函数(文本){
$(“#父项”).html(原区域);
如果(!Text.length)返回;
搜索它(文本);
}
$(“#关键字”).keyup(函数(e){
var inputText=$.trim($(e.target.val());
重置它(输入文本);
});

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着Aldus PageMaker等桌面出版软件的发布,包括Lorem Ipsum版本

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着Aldus PageMaker等桌面出版软件的发布,包括Lorem Ipsum版本

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着Aldus PageMaker等桌面出版软件的发布,包括Lorem Ipsum版本

Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着Aldus PageMaker等桌面出版软件的发布,包括Lorem Ipsum版本


重置
,这样看来您的问题是您在搜索结果周围插入了
..
标记以突出显示它们,而以后的匹配也无法在这些结果周围匹配

我能让它像这样工作:

var src_str=$(“#test”).html();
var origional=$(“#备份”).html();
var searchIt=函数(文本){
console.log(文本);
变量标记=文本;
标记=标记。替换(/(\s+)/,“(]+>)*$1(]+>)*”;

var pattern=new RegExp(“(“+标记+”+(?=[^>])*(?:提供一个示例输入和预期输出。请访问我的JSFIDLE,这是为了搜索。我想突出显示字母)输入框中键入的。当输入框为空时,所有突出显示的内容都需要删除。-更多信息请告诉我进入该页面需要很长时间。为什么不使用我们的内置工具?您是否面临任何问题?它对我来说很好。我不知道如何放入内置工具。如果您帮助,请让我这样做。@AvinashRaj-添加代码片段请Heckw当你输入“b”时,粗体字会被弄乱,有没有办法避免替换HTML标记中的任何内容?@RolandSeuhs重新构建了它。这个答案有很多问题,但现在似乎可以解决了。