我需要用HTML标记+ \ n替换HTML结束标记。我发现了SO answer
var regex = new RegExp("(</.*?>)", "gi");
strContent = strContent.replace(regex, "$1 \n ")
.replace(/\/>/g,'/> \n ');
有人可以向我解释上面代码中发生了什么吗?为什么宣布正则表达式被替换?每个部分意味着什么?
答案 0 :(得分:2)
第一个正则表达式(</.*?>)
正在搜索</span>
或</div>
表单的所有结束标记,并选择标记作为一个组。该组将替换为找到的组以及新行。
第二个正则表达式/\/>/
正在查找<img />
或<input />
形式的标记的最后两个字符。 \
正在逃离第二个/
。然后用相同的字符和新行替换这两个字符。
答案 1 :(得分:1)
这是正则表达式替换函数。
它也可以这样写:
strContent = strContent.replace(new RegExp("(</.*?>)", "gi"), "$1 \n ").replace(/\/>/g,'/> \n ');
这更有意义吗?
作者决定单独声明Regex对象,然后将其作为Replace方法的输入引用
我只能推测,但我想这是出于调试原因。