2015-04-01 69 views
0

我試圖用關閉標記+換行符來代替一般關閉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更換${1}

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

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

或者你可以只需將replace方法放入val函數即可。

+0

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