2015-04-12 44 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");