jQuery - 用新行替换换行符\ n

时间:2015-12-05 22:47:45

标签: jquery html replace

我正在使用jQuery 1.11。

我在html中显示了一个字符串,我希望将相同的字符串复制并粘贴到textarea。

我遇到的问题是要粘贴的字符串包含换行符<br />。要在textarea中正确显示字符串,我必须用新行<br />替换换行符\n

我正在使用replace,但我编写的用<br />替换\n的每个排列都失败了。字符串沿着一行打印。

我搜索过google&amp;所以,但这对我不起作用 - 我在这里缺少一些基本的东西。

如何编写字符串替换函数以将<br />替换为\n

这是我的字符串:

[employer]<br />[mm/yyy] - [mm/yyy] - ([number] years1, [number] months)<br /><br />

以下是替换代码对我不起作用:

var text = $(this).closest('.employment_history_suggestion_add_button').prev().text();  // Get text of the previous span element
text = text.replace(/<br\s*\/?>/mg,"\n");  // replace line break with new line for correct display in textarea.

修改

这是现在可以使用的代码。

我使用的是.text() - 应该使用.html()

我使用\\n - 本来应该使用\n

var text = $(this).closest('.employment_history_suggestion_add_button').prev().html();  // Get html of the copied string (keep the line breaks for replacing with new lines).
text = text.replace(/<br\s*\/?>/gim, "\\n");
$('#id_employment_history_employerTA').val(function (i, oldVal) {
                return oldVal + text;  // append the value of text to the textarea.
});

我希望这有助于某人。

1 个答案:

答案 0 :(得分:4)

目前还不清楚代码的哪一部分失败,尽管你想要在替换模式中双重转义\n回车符:

var text = '[employer]<br />[mm/yyy] - [mm/yyy] - ([number] years1, [number] months)<br /><br />'

text = text.replace(/<br\s*\/?>/gim, "\\n")
alert(text);

<强>结果:

[employer]\n[mm/yyy] - [mm/yyy] - ([number] years1, [number] months)\n\n