用HTML标记代替关闭的HTML标记+ \ n
问题描述:
我试图用关闭标记+换行符来代替一般关闭html标记,我在这里发现了类似的帖子,没有真正帮助我完成我寻找。用HTML标记代替关闭的HTML标记+ n
</li>
将</li>\n
<img some property />
将<img some property />\n
我没做到这一点在PHP与以下funtion,效果很好:
public static function addLBinHTML($htmlcode){
$pattern= array('~(</.*?>)~','(/>)');
$replace= array('${1} Hallo \n ','/>\n ');
return preg_replace($pattern, $replace, $htmlcode);
}
我试图做在JavaScript/jQuery中也是如此,我无法获取变量(在php正则表达式${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);
}
在此先感谢您的帮助
答
你必须捕捉与括号中的正则表达式,指定替换字符串并通过$1
更换${1}
:
var regex = new RegExp("(</.*?>)", "gi");
strContent = strContent.replace(regex, "$1 \n ")
.replace(/\/>/g,'/> \n ');
或者你可以只需将replace
方法放入val
函数即可。
工程就像一个魅力:-) – 2015-04-01 16:50:09