2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

input要素に入力された制御文字の扱いまとめ

Last updated at Posted at 2026-01-11

input要素にスペース、改行文字、タブ文字を入力すると、ブラウザの仕様によって入力値がサニタイズされることがあります。
この記事では入力する方法、入力する文字、入力する文字の位置、ブラウザごとの挙動の差異を確認するHTMLを共有し、検証結果をまとめます。

TL;DR

  • Google Chrome, Safari, Firefoxの挙動に差異はなかった
  • 改行文字(LF,CR)のサニタイズについてはWHATWGがHTMLの仕様として定めていた
  • タブ文字、スペースのサニタイズについてはHTMLの仕様として定められていなかった
項目 特徴的な挙動
改行 (LF/CRLF) HTML、JavaScriptでは無視される。コピペ時は末尾以外は半角スペースに変換される。末尾は無視される。
タブ (\t) そのまま
半角・全角スペース そのまま

比較の観点

ブラウザ

  • Google Chrome
  • Safari
  • Firefox

入力方法

  • JavaScriptでinput要素のvalue属性を指定
  • HTMLでinput要素にvalue属性の初期値の指定
  • クリップボードからペースト
    • LF,CR,タブ文字についてはテキストエディタの影響がないようにpbcopyコマンドを使ってクリップボードに保持する様にしました
# クリップボードに [LF]A[LF]B[LF] を保持
printf "\nA\nB\n" | pbcopy

入力する文字

  • 半角スペース
  • 全角スペース
  • 改行文字(LF,CRLF)
  • タブ文字

文字の入力位置

  • 先頭
  • 中央
  • 末尾

使用したHTML

gemini-cliに手伝ってもらいながら作成し、Sandboxに置いておきました


詳細比較データ

挙動の表記例:

  • 保持: そのままの文字コードで値に含まれる
  • SP置換: 半角スペース (U+0020) に置き換わる
  • 削除: 文字が取り除かれる

1. JavaScript による代入 (input.value = "...")

文字 位置 Chrome Safari Firefox 備考
LF (\n) 先頭 削除 削除 削除
途中 削除 削除 削除
末尾 削除 削除 削除
CRLF (\r\n) 先頭 削除 削除 削除
途中 削除 削除 削除
末尾 削除 削除 削除
Tab (\t) 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
半角スペース 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
全角スペース 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持

2. クリップボードからのペースト

textarea などからコピーした複数行テキストを貼り付けた際の挙動。

文字 位置 Chrome Safari Firefox 備考
LF (\n) 先頭 SP変換 SP変換 SP変換
途中 SP変換 SP変換 SP変換
末尾 削除 削除 削除
CRLF (\r\n) 先頭 SP変換 SP変換 SP変換
途中 SP変換 SP変換 SP変換
末尾 削除 削除 削除
Tab (\t) 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
半角スペース 先頭  保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
全角スペース 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持

3. HTML value 属性による初期値

HTMLソースに記述された値が DOM 構築時にどう解釈されるか。

文字 位置 Chrome Safari Firefox 備考
LF (\n) 先頭 削除 削除 削除
途中 削除 削除 削除
末尾 削除 削除 削除
CRLF (\r\n) 先頭 削除 削除 削除
途中 削除 削除 削除
末尾 削除 削除 削除
Tab (\t) 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
半角スペース 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持
全角スペース 先頭 保持 保持 保持
途中 保持 保持 保持
末尾 保持 保持 保持

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?