我正在将文本输入textarea,这将是来自用户的注释。字符串看起来像这样。如果它中有特殊字符,则某些文本会被javascript中的替换调用切断。
这是文字。
This "email" and any files transmitted with it are proprietary and ?><??><intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. Please note that any views or opinions presented in this email :"":&((*)((*)(*)( are solely those of the author and do not necessarily represent those of the company.
这是我在Javascript中所做的。 'newNote'是我的textarea
$(newNote).replaceWith("<div name=\"note\" class=\"contractNote\">" + "<span style=\"white-space: pre-line\">" + $(newNote).val() + "</span></div>");
以下是我在页面上看到的内容。看起来像一个特殊角色后的所有东西都被砍掉了。
此“电子邮件”和随之传输的任何文件都是专有的,并且?&gt;
答案 0 :(得分:2)
https://jsfiddle.net/nnmfe7L2/1/
<??>
和<intended ....
被视为标记,不会呈现
这是一个纯HTML问题
在将字符串插入DOM之前,将所有<
的字符串替换为<
$('#note').replaceWith("<div name=\"note\" class=\"contractNote\"><span style=\"white-space: pre-line\">" +
text.replace(/</g,"<") +
"</span></div>");
答案 1 :(得分:0)
你也可以试试。
var textarea = $('textarea');
var text = textarea.val().replace(/</g, "<").replace(/>/g, ">");
textarea.replaceWith("<div name='note' class='contractNote'><span style='white-space: pre-line'>" + text + "</span></div>");