[英]remove div tags and replace some of them by br tag
我有下一段文字:
fffffff<div>hhhhh</div><div>kh</div>
1)我只想删除div标签。
2)如果div标签不在字符串的开头也不在字符串的末尾,请替换为<br/>
3) </div><div>
应该替换为一个div。
例子:
1) fffffff<div>hhhhh</div><div>kh</div>
-> fffffff<br/>hhhhh<br/>kh
字符串末尾的</div>
标记未替换,因为它位于字符串末尾。
2) <div>fffffff</div><div>hhhhh</div><div>kh</div>
-> fffffff<br/>hhhhh<br/>kh
您可以假设没有类似以下内容的文字:
<div><div><div><div><div></div><div>text</div><div></div>
查找所有html标签:
replace(/<[^>]*>/g, "<br/>")
但是它用<br/>
替换了所有的html标签。
$('.c').html(function(i, v) { return v.replace(/^([\\w\\s]+)(<div>.*?<\\/div>)/, '$1<br/>$2') //-^- For first div .replace(/<div>(.*?)<\\/div>\\s*$/, '$1') //-^- For removing div at ending .replace(/<div>(.*?)<\\/div>/g, '$1<br/>') //-^-For removing other div });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class=c> <div>fffffff</div> <div>hhhhh</div> <div>kh</div> </div> <div class=c> fffffff <div>hhhhh</div> <div>kh</div> </div>
为了符合您的示例:
var str = "fffffff<div>hhhhh</div><div>kh</div>";
if(str.indexOf("<div>") === 0){
str = str.substring(5);
}
if(str.slice(-6) === "</div>"){
str = str.substring(0,str.length - 6);
}
str = str.replace(/<\/div><div>/g,"<br/>");
str = str.replace(/<div>/g,"<br/>");
但要符合您的第三条规则,您应该进行更改
str = str.replace(/<\/div><div>/g,"<br/>");
通过
str = str.replace(/<\/div><div>/g,"<div>");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.