替换 <span text-decoration:underline with <u></u>

Replace <span text-decoration:underline with <u></u>

我正在格式化某个 html 文本。

在那篇文章中,我有几个具有不同属性的 <span> 标签。 我要全部改

<span style="text-decoration: underline; color: #993300;">XXXXXXX</span> 

<span style="color:#993300"><u>XXXXXXXX</span>

我用过

$cont = preg_replace("/<span style=\"text-decoration:\s(.+?)>(.+?)<\/span>/is", "<u></u>", $cont);

实现这一目标。但问题是,如果我有多个 </span> 标签,那么脚本将替换 <span style="... 和最后一个 </span>

之间的所有内容

请帮忙。

您可以使用 JQuery:

来解决这个问题
<script type="text/javascript">
  $(document).ready(function () {
    $('span').css('color', '#993300');
    $('span').css('text-decoration', 'none');
});
</script>

如果您是 JQuery 的新手,那么在 <head> 中包含 jQuery 库 ist 就像这个例子:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>

现在您可以使用上面的代码,它会起作用。

试试这个

preg_replace("/(<span\s*style\s*=\s*\"[^\"]*?)text-decoration\s*:\s*underline\s*;([^\"]*\"\s*>)((.(?!<\/span>))+)<\/span>/is", "<u></u><\/span>")

这里的想法是匹配每个字符直到 </span>with

(.(?!<\/span>))+