替换<;span文本装饰:带<;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>$2</u>", $cont);

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

请帮忙。

试试这个

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

其中的想法是将</span>之前的每个字符与进行匹配

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

您可以使用JQuery:解决此问题

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

如果你是JQuery的新手,那么在<head>中包括jQuery库列表,如下例:

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

现在您可以使用上面的代码了,它就可以工作了。