Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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/2/jquery/83.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 替换非';特定标记的t子串_Javascript_Jquery_Html - Fatal编程技术网

Javascript 替换非';特定标记的t子串

Javascript 替换非';特定标记的t子串,javascript,jquery,html,Javascript,Jquery,Html,我需要替换HTML中的关键字,并在其周围放置一个空格,以便稍后捕获单击事件 我得到了字符串格式的HTML,我尝试的是使用正则表达式将特定字符串替换为由span包围的字符串。这一切都很好,但问题是它与链接和其他标记匹配。因此,如果关键词匹配,它也会包围其中的一部分 用于替换关键字的代码: textToBeChanged = textToBeChanged.replace(new RegExp(keyword, 'ig'), keywordWrappedInSpan) 有没有一种方法可以扩展它,使

我需要替换HTML中的关键字,并在其周围放置一个空格,以便稍后捕获单击事件

我得到了字符串格式的HTML,我尝试的是使用正则表达式将特定字符串替换为由span包围的字符串。这一切都很好,但问题是它与链接和其他标记匹配。因此,如果关键词匹配,它也会包围其中的一部分

用于替换关键字的代码:

textToBeChanged = textToBeChanged.replace(new RegExp(keyword, 'ig'), keywordWrappedInSpan)

有没有一种方法可以扩展它,使它在链接或其他标记中不会替换它?或者使用JQuery的某种方法?

为了达到预期的结果,请使用下面的按关键字测试拆分字符串的方法

  • 按单词拆分字符串-“测试”
  • 检查字符“”和“”
  • 相应地用单词测试更新span
  • 工作代码示例
    var str='test-test'
    console.log(str.split('test').map(v=>{
    if(v.indexOf(“”)==-1&&v.indexOf(“”)==-1){
    v=v+“测试”
    }否则{
    如果(v.indexOf(“”)!=-1){
    v=v+“测试”
    }
    }
    返回v
    
    }).join(“”))
    有关开始解析html的一些更好的方法,请参见以下内容,然后您可以将替换对象仅定位于文本节点,等等。您可能应该研究API。@ScottSauyet我认为我无法使用该API html不在DOM中。我必须在它被注入之前解析它。但我的想法是一样的。使用JQuery,我可以将字符串解析为JQuery或类似的东西。那就是那种结构。我想遍历它,在需要的地方替换字符串。并且不在不需要替换的子节点元素中替换它。请共享输入字符串和预期值output@NagaSaiA如果我有一个示例test,我想得到一个test,在这个示例中,文本“test”并没有被切换到真正有趣的解决方案中。不过,很抱歉回复太晚了。我无法找到应用程序的那个部分,所以只有现在我才能尝试应用这个