如何使用javascript

时间:2016-03-16 06:46:39

标签: javascript html regex

我有一个像

这样的字符串
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编辑器可以忽略将它们作为标签读取

3 个答案:

答案 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操作不是一个好主意,而是可以尝试类似

的操作

&#13;
&#13;
<!-- 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;
&#13;
&#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>");