我正在使用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.
});
我希望这有助于某人。
答案 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