用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函数即可。

+0

工程就像一个魅力:-) – 2015-04-01 16:50:09