コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

HTML5のinputには正規表現マッチをするpatternというタグがある

JSでゴリゴリ書く時代ではないのかもな…というメモ

出典

inputタグの属性として指定ができる。

もう一つとてもよく使われる機能は pattern 属性で、値として正規表現を取ります。 - フォームデータの検証 - Web 開発を学ぶ | MDN - 正規表現での検証

上記の引用元の改変になるが以下のようなものを作ると、YesかNoかしかSubmitできないformができる。

<form>
  <label>YesかNoをいれてください</label>
  <input id="choose" type="text"  pattern="Yes|No">
  <button>回答</button>
</form>

このHTMLで作った場合、Submitしてそぐわない値の場合はブラウザが用意してくれたアラートがでる

f:id:shinkufencer:20190925132610p:plain
Chromeの場合、ブラウザによって異なる

HTMLを細工すればSubmitは押せるようになるので、防御機構としてはそこまで期待できないが、「サーバにリクエストを送る前に軽くバリデーションかけたい」とか「特にUIは気にしないけど事前にある程度保険としてかけたい」とかそういう用途には効く。なので悪意の利用者が少ない内部管理ツールなどが一番活躍できるタグ。

どの正規表現がつかえるかは上記MDNのリンク参照のこと。

関連リンク