文本区域中的新行将转换为
>

发布于 2024-11-07 08:16:24 字数 642 浏览 7 评论 0原文

这里有很多关于转换 br/> 的线程或在不同语言之间保留换行符,但关于文本区域的不多。

我有这个脚本:

var boxText = "";
$("textarea.BoxText").live('dblclick', function () {
    boxText = $(this).val().replace(/ /g, "<br/>");
  $(this).replaceWith( '<div class="BoxText">' + $(this).val() + '</div>' );

});
$("div.BoxText").live('dblclick', function () {
  $(this).replaceWith( '<textarea form="HTML" class="BoxText">' + boxText + '</textarea>' );
});

我有一个可编辑的文本区域元素。当用户双击它时,它会转换为 div。然而,在 div 中,换行符不会被保留。我只想将新行转换为
,目前,所有空格都正在转换。我有第二个脚本将其转换回文本区域,因此是用于存储字符串的变量。我还需要将
重新转换为新行。

这可能看起来多余,但我有充分的理由。

There's a lot of threads here about converting br/> or preserving newlines across different languages, but not many regarding textarea.

I have this script:

var boxText = "";
$("textarea.BoxText").live('dblclick', function () {
    boxText = $(this).val().replace(/ /g, "<br/>");
  $(this).replaceWith( '<div class="BoxText">' + $(this).val() + '</div>' );

});
$("div.BoxText").live('dblclick', function () {
  $(this).replaceWith( '<textarea form="HTML" class="BoxText">' + boxText + '</textarea>' );
});

I have a textarea element, editable. When the user double-clicks on it, it converts into a div. However, in a div, the newlines are not preserved. I would like to convert just the new lines into
, currently, all spaces are being converted. I have a second script that converts it back to textarea, hence the variable for storing the string. I would need the
's to be reconverted into new lines as well.

This may seem redundant, but i have a good reason for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耀眼的星火 2024-11-14 08:16:24

这会将换行符替换为 HTML 换行标记。不同的组合涵盖不同的浏览器/系统以及如何解释换行符。

$(this).val().replace(/\r\n|\r|\n/g,"<br />")

这将使它回到新行 - 还涵盖不同浏览器如何解释innerHTML。

boxText.replace(/<br\s?\/?>/g,"\n");

This will replace line breaks to HTML break tags. The different combinations are to cover the different browsers/systems and how line breaks are interpreted.

$(this).val().replace(/\r\n|\r|\n/g,"<br />")

This will bring it back to new lines - also covering how different browsers interpret innerHTML.

boxText.replace(/<br\s?\/?>/g,"\n");
她如夕阳 2024-11-14 08:16:24

我不知道这是否适合您,但您可以尝试一下

这个将
转换为 textarea 中的新行

$(this).val().split("<br/>").join("\n");

而这个将其转换回来

boxText.split("\n").join("<br/>");

这对我有用

I don't know if this will work for you, but you can try it out

This one converts <br/> to new line in textarea

$(this).val().split("<br/>").join("\n");

And this one converts it back

boxText.split("\n").join("<br/>");

This works for me

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文