💭
textareaでの改行コードと送信後の改行コード
良く忘れてしまうのでメモとして残しておく。
結論
textarea 上での改行コードは LF
で、送信後 CRLF
になる。
検証用コード
index.html
<body>
<form action="/post.php" method="post" id="textarea">
<textarea name="value"></textarea>
<input type="submit" value="post">
</form>
<p>改行コード <span id="new-line-char"></span></p>
<script>
document.getElementById('textarea').addEventListener('change', event => {
document.getElementById('new-line-char').innerText = getNewLineChar(event.target.value);
});
function getNewLineChar(str) {
if (str.match(/\r\n/)) {
return 'CRLF';
} else if (str.match(/\r/)) {
return 'CR';
} else if (str.match(/\n/)) {
return 'LF';
} else {
return '';
}
}
</script>
</body>
post.php
<?php
function getNewLineChar(?string $str): string
{
return match (true) {
(bool)preg_match('/\r\n/', $str) => 'CRLF',
(bool)preg_match('/\r/', $str) => 'CR',
(bool)preg_match('/\n/', $str) => 'LF',
default => '',
};
}
echo '改行コード: ' , getNewLineChar($_POST['value']);
Discussion