2015-04-12 47 views
1

在WordPress中,我從一個自定義字段中提取值並通過ajax將其插入到另一個自定義字段中。但是,當我拉入數值時,它會在字段(textarea)中顯示<br />標籤。有沒有辦法在插入值之前去除<br />標籤,並用硬返回來代替它(如果您按Enter鍵將文本放在新行中)?Strip <br>來自文本的標記並將其替換爲硬回車?

下面的代碼的相關部分:

 jQuery.post(ajaxurl, data, function(response) { 

      var fields = response.split('_'); 

      // contact person 
      $('#acf-field_55256bdcd0dba').val(fields[0]); 

      // address (this text has <br> tags) 
      $('#acf-field_552437ab1940b').text(fields[1]); 

     }); 

這textarea的作爲顯示地址:

123 Elm Street<br />Anytown, USA 90210 

而且我想它顯示爲:

123 Elm Street 
Anytown, USA 90210 

謝謝!

+0

一個簡單的'.replace()'應該工作,假設,當然,一個地址不能準確地包含''
。 –

+0

您是否無法控制服務器發送的內容? –

回答

0

此代碼也取代之類的東西<br class="xyz" />但不匹配其他任何可能的XML標記例如<brown>

fields[1] = fields[1].replace(/<br\s*(\s+[^>]+)*[\/]?>/gi, "\r\n"); 

我測試了它反對:<br><br/><br /><br class="xyz"><br class="xyz" />

+0

工作,謝謝。我會用這個,所以我可以覆蓋
標籤的所有變體。使用'/ gi'與'/ g'有什麼區別? – LBF

+0

'g'是「貪婪的」,所以它匹配所有的出現,而不僅僅是第一個(如在CezarisLTs答案中)。 '我'是「(大小寫)不敏感」,所以它匹配'
'和'
' – Reeno

+0

太棒了。感謝您的解釋! – LBF

0

簡單替換br\r\n(新行);

field[1] = fields[1].replace("<br/>","\r\n"); 

http://jsfiddle.net/t78Loujs/

+0

謝謝!它幾乎在工作......但它只是刪除第一個
。我搜索了一下,發現有關在正則表達式中使用「g」代替所有內容,但我不確定在哪裏放置「g」。有任何想法嗎? – LBF

0

此代碼使我有一個換行符替換所有<br />標籤:

fields[1] = fields[1].replace(new RegExp("<br />","g"),"\r\n");