HTML/JavaScriptで国際電話番号入力を作成する方法
読む所要時間: 10 分
電話番号は国際的な番号体系として知られるE.164により標準化され、国コードと加入者番号を組み合わせた+14155552671のようなフォーマットがとられます。このフォーマットは(Twilioをはじめ)多くのAPIで必須とされており、国コードと電話番号を2つの別々のデータベース列に格納する必要はありません。
しかし、次のようなケースの電話番号入力でユーザーに+記号と国コードを入力してもらうのは避けたいところです。
- 新規アカウントの登録
- SMS 2FAの有効化
- カスタマーサービスからの返信のリクエスト
- マーケティング関連通知の登録
この記事では、基本的なHTMLとJavaScript、intl-tel-input
プラグインを使用して電話番号入力フィールドを作成し、電話番号を処理・解析する方法を説明します。電話認証と不正防止のためのヒントも紹介します。
完成したコードをGitHubで参照できます。
intl-tel-inputプラグインの機能
このプロジェクトで大いに使用するintl-tel-inputは、「国際電話番号の入力と確認に使用するJavaScriptプラグイン」です。このプラグインについて、自分がいつも使用しているセットアップを紹介しますが、その他にも多くの設定オプションがあります。こちらのドキュメントでご覧いただけます。
このプラグインは、国コードのドロップダウンを表示し、各国の国旗も表すことができます。加入者番号、つまり「各国フォーマット」の番号を処理し、スペース、括弧、ダッシュなどを含むユーザー入力を正規化することも可能です。

intl-tel-inputプラグインをコードに埋め込む
作成するコードはごくシンプルなものとし、一般的なHTMLとJavaScriptを使用して始めます。新規ファイルindex.html
を作成し、次のコードを追加します。
ここでこのファイルをブラウザに読み込むと、フォームフィールドが表示されますが、フォーマットされていない状態のため、プラグインの初期化が必要です。

intl-tel-inputプラグインの初期化
本文の下で、HTMLセクション内に次のscriptタグを追加し、次の初期化コードを追加します。