EOLs in Textarea
EOL (end of line) 在 textarea 中會被修改。

在 Textarea 中的 EOLs 都會被 format 為 \n (LF) ,而在 submit 後的 request 中為 \r\n (CRLF) 。
Demo:
此外 \t 及 \u00A0(nbsp) 並不會受到影響。
textarea 總是將 eol 換為 \n (LF) :
(() => { const textarea = document.createElement("textarea"); textarea.value = "\n\r\r\n"; console.log(textarea.value === "\n\n\n");})();FormData 本身不會改變值:
(() => { const formData = new FormData(); formData.append("textarea", "\n\r\r\n"); console.log(formData.get("textarea") === "\n\r\r\n");})();但使用 ajax 請求後還是會被 format 成 \r\n (CRLF) :
(() => { const xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { console.log(this.response); // "textarea": "\r\n\r\n\r\n" }; xhttp.open("POST", "https://httpbin.org/post", true); const formData = new FormData(); formData.append("textarea", "\n\r\r\n"); xhttp.send(formData);})();Reference: https://html.spec.whatwg.org/multipage/form-elements.html#the-textarea-element
