Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跳过HTML标记以仅向内容添加突出显示,而不是向HTML标记添加突出显示_Javascript_Angularjs - Fatal编程技术网

Javascript 跳过HTML标记以仅向内容添加突出显示,而不是向HTML标记添加突出显示

Javascript 跳过HTML标记以仅向内容添加突出显示,而不是向HTML标记添加突出显示,javascript,angularjs,Javascript,Angularjs,我想在突出显示与搜索输入匹配的单词后,用新的替换HTML模板内容 如代码片段所示,我正在使用高亮显示过滤器,通过添加&zwj$1&zwj 问题是,如果HTML标记中有匹配的字符串,有时会将该添加到HTML标记中。例如:在HTML中,有标记error\u outline。如果搜索字符串为ma,则标记将变为error\u outline 如何跳过HTML标记,使突出显示仅应用于内容,而不应用于HTML标记 尝试输入m,您会看到一些HTML标记出现,如 PS:如果可能的话,是否有办法在发生错误时跳过错

我想在突出显示与搜索输入匹配的单词后,用新的替换HTML模板内容

如代码片段所示,我正在使用
高亮显示
过滤器,通过添加
&zwj$1&zwj

问题是,如果HTML标记中有匹配的字符串,有时会将该
添加到HTML标记中。例如:在HTML中,有标记
error\u outline
。如果搜索字符串为
ma
,则标记将变为
error\u outline

如何跳过HTML标记,使突出显示仅应用于内容,而不应用于HTML标记

尝试输入
m
,您会看到一些HTML标记出现,如

PS:如果可能的话,是否有办法在发生错误时跳过
错误\u大纲
错误\u轮廓
,因为它指的是材质图标

angular.module(“myApp”、[“ngMaterial”])
.filter('highlight',函数($sce){
返回函数(文本、搜索){
如果(搜索){
searchSrting=searchSrting.split(/\s+/);
如果(文本类型!=“未定义”)
对于(var i=0;i
var text=“some text some text to”;
var标记='text';
var tagvalue=“这是结果”;
函数mapText(文本、标记、标记值){

var reg=new RegExp(“[\>][^\.]*”+tag+“[^\.]*[\由于一些错误,我编辑了我的答案

var text = "<div>some text <span class='text'> some text</span> to</div>";
var tag = 'text';
var tagvalue = "here is result";

function mapText(text,tag,tagValue){
  var reg = new RegExp("[\>][^\<\>.]*"+tag+"[^\<\>.]*[\<]","gi");
  var result = text.replace(reg,function(item,exp){
    var subRegex = new RegExp(tag,"gi");
    return item.replace(subRegex,tagValue);
  });
  return result;
};
mapText(text,tag,tagvalue)
var text=“some text some text to”;
var标记='text';
var tagvalue=“这是结果”;
函数mapText(文本、标记、标记值){

var reg=new RegExp(“[\>][^\.]*”+tag+“[^\.]*[\您不应该使用RegExp解析html

请在此处查找原因:

问候,


Eric

您不应该使用RegExp解析html

请在此处查找原因:

问候,


Eric

看起来介于>和chars是您的内容。请尝试仅替换该内容。//>[^><'这是您的正则表达式']+我试图只获取内容,但如何在相同的HTML标记中重新查看它?我不擅长正则表达式。不使用例如有什么意义?看起来介于>和chars是您的内容。尝试仅替换该内容。//>[^><'这是您的正则表达式']+我试图只获取内容,但如何在同一个页面中重新查看