我试图用结束标签替换一般关闭的html标签+换行符,我在SO上找到了类似的帖子,没有人真正帮助我完成我正在寻找的东西。
</li>
将为</li>\n
<img some property />
将为<img some property />\n
我设法在php中使用以下功能执行此操作,效果很好:
public static function addLBinHTML($htmlcode){
$pattern= array('~(</.*?>)~','(/>)');
$replace= array('${1} Hallo \n ','/>\n ');
return preg_replace($pattern, $replace, $htmlcode);
}
我试图在JavaScript / jQuery中做同样的事情而且我没有获得变量(在php regex ${1}
中)。
我尝试使用.split .join和.replace,我认为.replace是正确的方法。
这是我得到的(我的最后一次,也是最有希望的最接近的尝试)
function setLinebreaks(taID){
var strContent = $('#'+taID).val();
var regex = new RegExp("</.*?>", "gi");
strContent.replace(regex, "${1} \n ")
.replace(/\/>/g,'/> \n ');
console.log(strContent);
$('#'+taID).val(strContent);
}
提前感谢您的帮助
答案 0 :(得分:1)
您必须使用括号捕获正则表达式,指定已替换的字符串并将${1}
替换为$1
:
var regex = new RegExp("(</.*?>)", "gi");
strContent = strContent.replace(regex, "$1 \n ")
.replace(/\/>/g,'/> \n ');
或者您可以简单地将replace
方法放入val
函数。