gpt4 book ai didi

javascript - 替换 HTML 字符串和避免标记(正则表达式)

转载 作者:行者123 更新时间:2023-11-28 04:07:02 25 4
gpt4 key购买 nike

我正在尝试使用 JS 替换包含 html 标签+属性和样式的字符串中的特定字符串,同时避免读取或匹配标签的内侧(并在文本中保留原始标签)。

例如我要<span> this is span text </span>成为:<span> this is s<span class="found">pan</span> text </span>当关键字是“pan”时

我试着用正则表达式来......到目前为止我的正则表达式:

$(this).html($(this).html().replace(new RegExp("([^<\"][a-zA-Z0-9\"'\=;:]*)(" + search + ")([a-zA-Z0-9\"'\=;:]*[^>\"])", 'ig'), "$1<span class='found'>$2</span>$3"));

此正则表达式仅在类似 <span class="myclass"> span text </span> 的情况下失败当搜索=“p”时,结果:

<s<span class="found">p</span>an class="myclass"> s<span class="found">p</span>an text</s<span class="found">p</span>an>

*本主题应该可以帮助任何寻求匹配并替换匹配字符串同时避免被特定字符包围的字符串被替换的人。

最佳答案

正如 thg435 所说,处理 html 内容的好方法是使用 DOM。

但是如果你想在替换中避免某些东西,你可以先匹配你想避免的东西,然后自己替换它。

避免 html 标签的例子:

var text = '<span class="myclass"> span text </span>';

function callback(p1, p2) {
return ((p2==undefined)||p2=='')?p1:'<span class="found">'+p1+'</span>';
}

var result = text.replace(/<[^>]+>|(p)/g, callback);

alert(result);

关于javascript - 替换 HTML 字符串和避免标记(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604668/

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