用HTML标记替换HTML结束标记+ \ n分析

时间:2016-02-22 15:44:39

标签: javascript jquery regex

我需要用HTML标记+ \ n替换HTML结束标记。我发现了SO answer

var regex = new RegExp("(</.*?>)", "gi");

strContent = strContent.replace(regex, "$1 \n   ")
                   .replace(/\/>/g,'/> \n    ');

有人可以向我解释上面代码中发生了什么吗?为什么宣布正则表达式被替换?每个部分意味着什么?

2 个答案:

答案 0 :(得分:2)

第一个正则表达式(</.*?>)正在搜索</span></div>表单的所有结束标记,并选择标记作为一个组。该组将替换为找到的组以及新行。

第二个正则表达式/\/>/正在查找<img /><input />形式的标记的最后两个字符。 \正在逃离第二个/。然后用相同的字符和新行替换这两个字符。

答案 1 :(得分:1)

这是正则表达式替换函数。

它也可以这样写:

strContent = strContent.replace(new RegExp("(</.*?>)", "gi"), "$1 \n   ").replace(/\/>/g,'/> \n    ');

这更有意义吗?

作者决定单独声明Regex对象,然后将其作为Replace方法的输入引用

我只能推测,但我想这是出于调试原因。