我正在格式化某个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>
现在您可以使用上面的代码了,它就可以工作了。