无法替换标签<ul>中的内容</ul>

时间:2017-01-18 13:15:05

标签: regex replace

我有像这样的HTML内容

<div class='.desc_html_aff'>
sdsdfdfdgdsg
<ul class="pi_ul">
<li>abc</li>
<li>def </li>
<li>ererefe </li>
</ul>
wfwfwsfgdhfhfhdf
dgdfhfj
  </div>

我喜欢将<ul>的内容替换为&#39; !!&#39; 这里jquery不工作

var desc_aff=$('.desc_html_aff').html().replace(/<ul(.*?)>(.*?)<\/ul>/gi,"!!")

我真的看不出我做错了什么想法? 请帮助,谢谢

1 个答案:

答案 0 :(得分:1)

要转换的HTML字符串包含换行符,但.*?不匹配。您可以改为使用[\s\S]*?

var desc_aff=$('.desc_html_aff').html().replace(/<ul(.*?)>([\s\S]*?)<\/ul>/gi,"!!");
console.log(desc_aff);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='desc_html_aff'>
sdsdfdfdgdsg
<ul class="pi_ul">
<li>abc</li>
<li>def </li>
<li>ererefe </li>
</ul>
wfwfwsfgdhfhfhdf
dgdfhfj
  </div>