在p和textarea之间来回移动数据,但保留换行符

时间:2011-02-22 03:30:23

标签: javascript html regex textarea

对于获得正则表达式的人来说,这应该是一个简单的。

我在页面上有一个字段,由php预先填充,但可以使用javascript编辑。在“编辑模式”和“固定模式”之间交换时,我需要能够保留换行符。

我理解textareas喜欢他们的换行符\n,而普通的html喜欢看<br />个标签。我正在使用函数.replace(/\n/g, '<br />')从textarea到div,但我不知道如何使用该字段将字段返回到textarea并保留换行符。

此外,我不确定是否只是将<br />替换为\n是安全的,以防浏览器认为它更适合<br>

2 个答案:

答案 0 :(得分:3)

当您在CSS中设置white-space: pre-wrap时,会保留换行符,而无需使用br标记替换换行符。

请参阅此示例:http://jsfiddle.net/jVBdm/

更新: white-space: pre-wrap无法在IE6和IE7中运行(感谢Kenneth J指出这一点),但white-space: pre可行 - 这可能也可能不够您。您可以使用IE6和IE7的条件样式来使用pre并在现代浏览器上使用pre-wrap

答案 1 :(得分:1)

使用<br />(xhtml)或<br>浏览器是否应该完全相同地解析它们并不重要。

我认为你会使用你插入的相同break标记。

为了安全起见,我想你可以做到这两点。

txt =  txt.replace(/<br \/>|<br>/gi, '\n')