【问题标题】:FF and IE - way of handeling \n in textareaFF 和 E - textarea 中处理 \n 的方式
【发布时间】:2010-10-31 00:19:55
【问题描述】:

我正在做一个带有 jeditable 的 textarea。内容从数据库中保存和加载。但是我在 IE 和 FF 处理换行符的方式上遇到了一些问题。

经过一些调试后,我在 FF 中发现了一个神秘的行为。例如,如果我在 textarea 中输入:

1
2

它会返回

1<br>2

这很好。但如果我写:

1
2
3

返回

1<br>2<br>
3

怎么会?以及我应该如何对这种异常行为进行正则表达式。

自动取款机。我正在做这个正则表达式:

  data      : function(value, settings) {
      /* Convert <br> to newline. */
      retval = value(/<br[\s\/]?>/gi, '\n');
      return retval;
 },

这在 IE 中运行良好,但在 FF 中(由于这种行为)它返回的换行符比预期的要多。

你能帮忙吗?

提前致谢

【问题讨论】:

  • 在不知道 jeditable 的工作原理以及您如何使用它的情况下很难回答。您应该发布一个测试用例,或者更好的是,首先尝试用最少的代码(即没有任何插件)重现问题。

标签: internet-explorer firefox input textarea line-breaks


【解决方案1】:

如果您希望文本中没有换行符,为什么不在将 &lt;br&gt;s 转换为换行符之前将其删除?

value = value.replace(/(\r\n|[\r\n])/g,'');
retval = value.replace(/<br[\s\/]?>/gi, '\n');

【讨论】:

  • 它仍然会在 firefox-.- 中添加一个额外的 \n-
  • 我猜正则表达式不起作用。当使用 var retval = value.replace(/\\n/gi,'TEST');它不输出任何“TEST”
  • @s0mmer 所以尝试不同的正则表达式,我从这里取了一个新的:lawrence.ecorp.net/inet/samples/regexp-format.php
  • 我最终使用了 robertc 提出的想法,但使用了一个有效的正则表达式。谢谢
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多