【JavaScript】テキストボックスに入力された値が、郵便番号か判定する

■作成するプログラムの概要

・HTMLの画面にてJavaScriptを実装する。

・テキストボックスに入力された値が、郵便番号か判定する。
郵便番号の場合は「OK」を出力し、郵便番号ではない場合は、「郵便番号に誤りがあります」を出力する。
なお、郵便番号は、ハイフン「-」を含む、「3桁数字-4桁数字」とする。

■郵便番号を判定する正規表現

郵便番号を判定する正規表現は、以下のコードを使用する。

// JavaScriptに実装する正規表現
/^\d{3}-\d{4}$/

・先頭と末尾のスラッシュ「/」は、 JavaScriptにて、正規表現を記載している範囲であることをします。

・「^\d{3}」については、先頭はDecimal型の3桁を示す。

・「-」については、そのままハイフンを示す。

・「\d{4}$」については、末尾はDecimal型の4桁を示す。

■画面レイアウト

・テキストボックスに郵便番号を記入する。

・テキストボックスからフォーカスが外れた場合、郵便番号判定処理を行う。

・郵便番号の場合は「OK」を出力する。

・郵便番号ではない場合は、エラーを出力する。

■フローチャート

■プログラム仕様

入力処理内容出力
【テキストボックス】
郵便番号
name属性の要素を取得する。
正規表現をセットする。
正規表現:^\d{3}-\d{4}$
【テキストボックスのフォーカスが外れた時の処理】
▼条件分岐:郵便番号チェック
|【郵便番号ではない】
|テキストボックスの背景色をピンクにする。
|エラーメッセージを出力する。・・・①
-----
|【郵便番号である】
|テキストボックスの背景色を白にする。
|「OK」を出力する。・・・②
【HTML】
①郵便番号に誤りがあります
②OK

■サンプルコード

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>郵便番号チェック</title>
</head>
<body>
    <!-- 入力設定 -->
    <p>
        郵便番号(ハイフン含む):<input type="text" name="post_code">
        <span></span>
    </p>

    <!-- ここにjavascriptを実装する-->
    <script type="text/javascript">
        // name属性の要素を取得
        const input_post_code = document.querySelector('input[name="post_code"]');

        // 郵便番号の正規表現をセット
        const reqexp_word = /^\d{3}-\d{4}$/;

        // フォーカスが外れた時のイベントを設定
        input_post_code.addEventListener('blur', () => {
            // 郵便番号チェック
            if(!reqexp_word.test(input_post_code.value)){
                // 背景色をピンク
                input_post_code.style.backgroundColor = '#fcc';
                // エラーメッセージを出力
                input_post_code.nextElementSibling.innerHTML = '郵便番号に誤りがあります';

            }else{
                // 背景色を白
                input_post_code.style.backgroundColor = '#fff';
                // エラーメッセージを削除
                input_post_code.nextElementSibling.innerHTML = 'OK';
            }
        });
    </script>
</body>
</html>

■実行結果

・初期画面


・正常系


・異常系

コメント