我有一个像
这样的字符串str = "< p>line 1< br>< /p>< p>lin2< br>< /p>< h1>line 3< br>< /h1>";
我需要将< br>
与他们的下一个结束标记交换,在上面的例子中< /p>
,< /p>
和< /h1>
所以最后的要求是:
finalStr = "< p>line 1< /p>< br>< p>lin2< /p>< br>< h1>line 3< /h1>< br>";
我尝试创建正则表达式但没有成功。任何人都可以指导如何在这种情况下我可以创建正则表达式并使用JS交换br的出现与下一个结束标记? PS:我在所有标签中都添加了额外的空间,以便html编辑器可以忽略将它们作为标签读取
答案 0 :(得分:2)
你可以尝试:
"< p>line 1< br>< /p>< p>lin2< br>< /p>< h1>line 3< br>< /h1>".replace(/(< br>)(< \/[\w\d]*>)/g,'$2$1')
//"< p>line 1< /p>< br>< p>lin2< /p>< br>< h1>line 3< /h1>< br>"
答案 1 :(得分:1)
使用正则表达式进行dom操作不是一个好主意,而是可以尝试类似
的操作
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
{{1}}&#13;
答案 2 :(得分:1)
只需尝试这个
var str = "< p>line 1< br>< /p>< p>lin2< br>< /p>< h1>line 3< br>< /h1>";
var vca = str.replace(/<\sbr>(<\s\/\w>)/,"$1<br>");