Posted at

HTML の input type="number" には e を入力できる

HTML で input 要素の type 属性に number を指定したとき、数値以外で入力できる値として


  • -

  • +

  • .

以外に、実は e も入力できます

これは(おそらく)べき乗の表現にも対応しようとした処置です(例:1e+2100を表す)。

JavaScript でも 1000000000000000000000 以降は 1e+21 といった形で表現されたりしますしね。

ただ、困ったことにこれだと場合によってはサーバーサイドでの値のバリデーション等でコケる可能性があるので、フロントエンドで e を入力できないようにしたほうが親切かもしれません。

html5 - Why does the html input with type "number" allow the letter 'e' to be entered in the field? - Stack Overflow

自分は普段 Vue を使っているので、以下のように書くことで e を入力できないようにできたので便利だな〜と思ったりました。

<input type="number" @keydown.69.prevent>

以上です。


参考


input type="number" で e が書ける