正则表达式与动态<textarea> </textarea>

时间:2010-05-03 20:05:32

标签: javascript html ajax regex dynamic

如何使用JS replace()方法执行此操作:

  • 将\ n \ n更改为<p>$1</p>
  • 将单个\ n更改为<br>
  • 然后再回来。我想我有这个部分,请看底部的JS。

示例HTML:

<p>Hello</p><p>Wor<br>ld</p>

<textarea>看起来像:

Hello

Wor
ld

那么,我怎样才能做到这一点?这是一个AJAX表单,当你点击这个div时,它会变为<textarea>并返回,第四,等等。所以,我需要它来自<p><br> s到\n\n\n。对于从 HTML <textarea> ,我有:

$(this).html().replace(/\s?<\/?(p|br\s?\/?)>\s?/g,"\n")
对维克多和其他人来说,

我尝试将此代码转换回来,但它给了我这个回报(...只是更多的文字)

$(this).html().replace(/\n/g, "<br>").replace(/<br><br>(.*)?/g, "<p>$1</p>");

给了我:

<div class="editable" data-name="notes-content" data-type="textarea">
“Time Certain” indicates that an item will not be heard by Council prior to the time certain
.<p>Communications items are three minutes each. ... 
<br><br>The * indicates an emergency ... 
<br><br>Check our Web site: www.portlandonline.com
<br>
</p>
</div>

如果您注意到,它没有包裹第一行,并且它没有将它们包裹在<p>中,只是整个事情,我需要在<p> s

2 个答案:

答案 0 :(得分:1)

这个怎么样(版本#4):

$(this).html().replace(/\n/g, "<br>").replace(/(.+?)<br><br>/g, "<p>$1</p>");

答案 1 :(得分:0)

你走了:

$(this).html().replace(/\n/g, "<br>").replace(/<br><br>(.*)?/g, "<p>$1</p>");