概要
意識しているかどうかに関係なく、データは私たちの日常生活の重要な部分になっています。 オンラインでのフードの注文からキャットフードの検索まで、私たちは常にデータを送受信しています。 Web アプリケーションの開発者として、データベースがデータを正しく理解し、アプリケーションの堅牢性を維持できるように、ユーザー入力が指定された形式であることを確認する責任があります。
電話番号の検証は、データがデータベース全体で一貫した形式で保存されることを保証するため、重要です。 たとえば、ユーザーは電話番号の前に国コードを入力する必要があるかどうかを明確にする必要があるかもしれません。 適切な検証が行われていれば、ユーザーはそれが必要かどうかを簡単に判断できます。 同様に、ユーザーに何を期待するかを理解し、それに応じてロジックを実装できるため、一貫した形式によりユーザー エクスペリエンスが向上します。 データの不一致により後の段階でコードが破損すると、ユーザーのエクスペリエンスは低下します。
正規表現は、パターン マッチングのための強力なツールです。 これらは、ユースケースに応じて、さまざまなタイプのパターンに一致する柔軟性を提供します。 さらに、正規表現は言語に依存しないため、コア検証を簡単に統合できるため、検証ロジックの移植性が高まります。 JavaScript で正規表現を扱うのは簡単な作業です。
この記事は、正規表現の力を使用してアプリケーションの電話番号を検証する方法を理解するのに役立ちます。 国コードを含む電話番号を検証する簡単な JavaScript 関数を作成します。
正規表現とは何ですか?
簡単に言えば、正規表現は、指定された文字列内の事前定義されたパターンと一致します。 これはプログラミング言語で広く使用されており、主に特定の形式の入力を検証するために使用されます。 さらに、正規表現は、指定されたパターンの検索、分割、置換によく使用されます。
ドキュメント内で電子メール アドレスを検索したいとします。 電子メール アドレスは、特定のアドレスではなく、任意のアドレスにすることができます。 電子メール アドレスの構造はすでにわかっているため、簡単な式を作成すると、パターンをすぐに見つけることができます。
正規表現では、特殊文字を使用してさまざまな種類のパターンを示します。 例えば:
.
(ドット) は、任意の文字と一致する特殊文字です。*
(アスタリスク) は、前の文字と 0 回以上一致します。+
(プラス) は、前の文字と XNUMX 回以上一致します。?
(疑問符) は、前の文字をオプションにします。[abc]
いずれかの文字と一致しますa
,b
またはc
.(abc)
キャラクターをグループ化します。^
(キャレット) は行の先頭と一致します。$
(ドル) は行末と一致します。
これらはほんの一部です。 さらに深く掘り下げて、より多くのパターンについて学びたい場合は、以下を参照してください。 Microsoft からのこのドキュメント.
指定された一連の数値が XNUMX 桁の郵便番号であるかどうかを確認する正規表現を作成してみましょう。 式の記述を開始するには、 ^
(キャレット) 記号は行の先頭と一致します。 正規表現では、 d
任意の数字と中括弧内の数字に一致します ({}
) は、中括弧内に指定された回数だけ、前の要素と一致します。 上記のリストから、次のことがわかります。 $
行末を一致させるために使用されます。
この情報を組み合わせると、次のような正規表現が得られます。
/^d{5}$/
ここで、式をよりよく理解するために、下の図を調べてみましょう。
XNUMX 桁の郵便番号に一致する正規表現
正規表現とその一般的な構造の基本を理解したので、これらの式を JavaScript 関数でどのように実装できるかを検討してみましょう。
JavaScript正規表現
JavaScriptは 最も人気のあるプログラミング言語 開発者の間では。 ほとんどすべての Web アプリケーションは JavaScript を必要とするため、この言語で正規表現がどのように使用できるかを理解することが重要です。
JavaScriptでは、 RegExp
オブジェクトはパターン マッチングに使用されます。 このオブジェクトは次の XNUMX つの方法で利用できます。
- リテラル表記を使用し、パターンが XNUMX つのスラッシュで囲まれた形式に設定されます。
- コンストラクター表記を使用します。ここで、文字列または
RegExp
オブジェクトが渡されます
リテラル表記は次のように簡単に使用できます。
const expr = /^d{5}$/i;
一方、コンストラクター表記では、 RegExp
コンストラクターを使用してそのインスタンスを作成します。 その様子は次のとおりです。
const expr = new RegExp(/^d{5}$/, "i");
RegExp オブジェクトの詳細については、 MDN の公式ドキュメント。 ここで、電話番号検証の重要性と電話番号のさまざまなコンポーネントについて見てみましょう。
電話番号の検証とコンポーネント
電話番号をデータベースに保存する場合、クライアント側で電話番号を検証することが重要です。 適切に検証しないと、コードが予期しない動作を示す可能性があります。
ベストプラクティス、業界で認められた標準、および含まれているチートシートを含む、Gitを学習するための実践的で実用的なガイドを確認してください。 グーグルGitコマンドを停止し、実際に 学ぶ それ!
たとえば、電話番号とともに国コードを必要とするサービスを使用しているが、検証が不十分なためにユーザーが国コードを含めていないとします。 今、あなたが持っているのは番号だけです 無し 国コードが原因で、SMS テキスト メッセージを送信するサービスが失敗する可能性があります。 これは単なる XNUMX つの仮説的なシナリオです。 他の問題によっては、アプリケーションがクラッシュする可能性もあります。 フロントエンドでデータを適切に処理し、データベース全体にクリーンで一貫性のあるデータを確実に保存することが重要です。
一般に、電話番号は次の XNUMX つの部分で構成されます。
- 国コード: 最初の 1 ~ 3 桁 (国によって異なります) は、電話番号の国を定義します。 このコードにより、通話を正しい国にルーティングできます。 国コードを 0 で始めることはできません。
現在編集中の記事のタイトルは「JavaScript で正規表現を使用して電話番号を検証する」です。 編集するテキストの部分:
- 市外局番: 市外局番またはダイヤル番号とも呼ばれる、番号のこの部分は、通話を国内の正しい地理的エリアにルーティングするのに役立ちます。 米国など一部の国では、市外局番が特定のサービスの特定の電話番号セットを示すこともあります。 さらに、北米では、市外局番を 0 または 1 で始めることはできません。
- 電話プレフィックス: この一連の番号は、電話会社によって特定の中央局または電話交換局に割り当てられ、特定の地理的エリアまたは近隣をさらに絞り込みます。
- 回線番号: これは、プレフィックス エリア内の家庭または企業の特定の電話回線に割り当てられる一意の番号です。 通常、番号のこの部分により、国、地域、プレフィックス内の各電話番号が一意であることが保証されます。
国番号を除いた残りの部分を結合すると、市外局番と電話番号がそれぞれ XNUMX 桁、回線番号が XNUMX 桁の XNUMX 桁の電話番号になります。
次に、正規表現を使用してこれらの基準に基づいて電話番号を検証する JavaScript 関数の作成に移りましょう。
電話番号検証用の正規表現を作成する
電話番号の基本構造はすでに理解しました。 また、正規表現とそれを JavaScript で使用する方法についても学びました。 このセクションでは、指定された形式の電話番号を検証する単純な JavaScript 関数を作成します。
COUNTRY_CODE-AREA_CODE-TELEPHONE_PREFIX-LINE_NUMBER
たとえば、関数に有効な電話番号は次のようになります。 +123-456-789-1234
ではない +012-123-456-7890
or +12-123-456-789
, これらの電話番号は、前に説明した電話番号のルールに従っていないためです。
それでは、正規表現の作成に移りましょう。 まず、国番号が 1 ~ 3 桁の長さで、ゼロで始まらないかどうかを確認しましょう。
正規表現の開始を示すには、キャレット (^
)、先頭にプラスが存在することを検証します。 この目的のために、使用しましょう +
、これは先頭にプラスが存在することと一致します。 ここで、国コードの桁が XNUMX ~ XNUMX 桁であり、最初の桁がゼロでないことを確認するには、次のように記述します。 [1-9]{1}[0-9]{0,2}
。 ここに、 [1-9]{1}
1 から 9 までの任意の数字が XNUMX 回だけ存在できることを指定します。また、同様に、 [0-9]{0,2}
は、0 ~ 9 の任意の数字が XNUMX ~ XNUMX 回存在できることを示します。
区切り文字として、 -
数字のセクションの間には (ハイフン) を入れます。 一 -
国コードの検証後に追加できます。 したがって、この時点での正規表現は次のようになります。
^+[1-9]{1}[0-9]{0,2}-$
$
at the end は行の終わりを指定します。 さて、市外局番の場合、これは非常に似ています。 市外局番を XNUMX または XNUMX で始めることはできません。 したがって、最初の部分は次のようになります [2-9]{1}
。 これは、最初の数値が 2 ~ 9 であることと一致します。この一致は XNUMX 回だけ発生します。 次に、コードの残りの部分については次のように記述できます。 [0-9]{2}
。 これにより、最初の桁の後に正確に 0 桁が存在し、各桁の範囲が 9 ~ XNUMX になることが保証されます。再度、最後にハイフン区切り文字を追加します。
完全な正規表現は次のようになります。
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|
もう一度同じパターンを使用して電話プレフィックスを確認してみましょう。 電話プレフィックスも XNUMX や XNUMX で始めることはできないと仮定しましょう。 したがって、追加すると、 [2-9]{1}[0-9]{2}
ハイフンをもう一度入れると、次のような式になります。
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|
現時点で残っている唯一の部分は行番号です。これは長さ XNUMX 桁の任意の数字にすることができます。 これは他のものよりも簡単です。 その表現は、 [0-9]{4}
.
完全な式は次のとおりです。
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|-Line-|
中括弧が頻繁に使用されていることにお気づきでしょう。 これらは、中括弧内に指定されたインスタンスと一致するために使用されます。 特定の数字の場合は、次のようになります {1}
の場合、前のパターンに XNUMX 回だけ一致します。 ただし、範囲の場合は、次のようになります {0, 2}
、一致の最小数と最大数を定義します。 したがって、次の場合、 {0, 2}
、パターンと最低 XNUMX 回、最大 XNUMX 回一致します。
パターンが完成しました。 これで、正規表現を使用して電話番号が有効かどうかを確認する簡単な JavaScript 関数を作成できるようになりました。 関数は次のとおりです。
function validatePhoneNumber(phoneNumber) { const pattern = new RegExp("^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$"); if (pattern.test(phoneNumber)) { console.log("Phone number is valid"); return true; } else { console.log("Phone number is not valid"); return false; }
} validatePhoneNumber("+123-456-789-1234"); validatePhoneNumber("+0-123-456-7890"); validatePhoneNumber("+12-012-123-1234");
機能は非常に簡単です。 電話番号を入力として受け取ります。 正規表現パターンは、という変数内に保存されます。 pattern
。 パターンは RegExp コンストラクターを使用してインスタンス化され、式をパラメーターとしてコンストラクターに渡します。 次に、次を使用して電話番号をテストします。 test
オブジェクトで使用できるメソッド。 if-else ステートメントを使用して、電話番号がテストに合格するかどうかを確認します。 存在する場合、true を返し、次のことを示すコンソール メッセージを送信します。 Phone number is valid
。 それ以外の場合は、false を返し、電話番号が無効であることを示すコンソール メッセージを表示します。
これで準備完了です。 これで、電話番号が有効かどうかをテストできます。
まとめ
この記事の目的は、正規表現、その使用法、電話番号の検証に正規表現を適用する方法の概要を説明することです。 また、電話番号のさまざまなコンポーネントと、各コンポーネントをテストする方法についても説明しました。
正規表現の基本を理解したら、追加のパターンを探索できるようになります。 次のようなツールを使用することもできます 正規表現101 オンラインで式を検証するため。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- EVMファイナンス。 分散型金融のための統一インターフェイス。 こちらからアクセスしてください。
- クォンタムメディアグループ。 IR/PR増幅。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 情報源: https://stackabuse.com/validate-phone-numbers-in-javascript-with-regular-expressions/
- :持っている
- :は
- :not
- :どこ
- 1
- 12
- 20
- 8
- 9
- a
- ABC
- 私たちについて
- 上記の.
- それに応じて
- 越えて
- 実際に
- 加えます
- 追加されました
- 追加
- NEW
- さらに
- 住所
- 後
- 再び
- 目的としました
- すべて
- ことができます
- 沿って
- 既に
- また
- アメリカ
- 間で
- an
- および
- どれか
- 申し込み
- 適用された
- です
- AREA
- 記事
- AS
- 割り当てられた
- At
- 利用できます
- ベース
- 基本
- BE
- なぜなら
- になる
- 始まる
- 以下
- より良いです
- の間に
- 国境
- 休憩
- ビルド
- ビジネス
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- コール
- 呼ばれます
- 缶
- 場合
- CAT
- 中央の
- 文字
- 文字
- チェック
- 点検
- 小切手
- 市町村
- クライアント
- コード
- コード
- 結合
- 一般に
- 会社
- コンプリート
- コンポーネント
- コンポーネント
- 整合性のある
- からなる
- 領事
- 絶えず
- 建設
- 基本
- 正しい
- 可能性
- 国
- 国
- Crash
- 作ります
- 基準
- 重大な
- 現在
- データ
- データベース
- 日々
- より深い
- 定義する
- によっては
- 決定する
- 開発者
- 異なります
- 数字
- 議論する
- ディスプレイ
- do
- ドキュメント
- ありません
- doesnの
- ドル
- DOT
- ダウン
- 原因
- 各
- 前
- 簡単に
- どちら
- 素子
- 採用
- end
- 確保
- 確実に
- 確保する
- さらに
- 正確に
- 調べる
- 例
- 交換
- 展示
- 存在する
- 存在
- 期待する
- 体験
- 探る
- 表現
- 表現
- フェイル
- false
- 少数の
- もう完成させ、ワークスペースに掲示しましたか?
- 名
- 柔軟性
- フォーカス
- 次
- フード
- 形式でアーカイブしたプロジェクトを保存します.
- フォワード
- 4
- 頻繁な
- から
- フロントエンド
- function
- さらに
- さらに
- 地理的
- 取得する
- Gitの
- 与えられた
- Go
- 良い
- グラフィック
- グループの
- ガイド
- ハンド
- ハンドル
- 実践的な
- 持ってる
- 助けます
- ことができます
- こちら
- 家庭
- ホバー
- 認定条件
- How To
- しかしながら
- HTTPS
- i
- if
- 実装する
- 実装
- 重要性
- 重要
- in
- 含まれました
- 含めて
- 示す
- を示し
- 情報
- 入力
- 統合する
- に
- 概要
- 問題
- IT
- JavaScriptを
- ジャンプ
- ただ
- 一つだけ
- 知っている
- 既知の
- 欠如
- 言語
- ESL, ビジネスESL <br> 中国語/フランス語、その他
- 後で
- LEARN
- 学んだ
- 学習
- 長さ
- う
- LG
- ような
- LINE
- リスト
- 命
- ll
- ロジック
- 長い
- 見て
- のように見える
- LOOKS
- make
- 作る
- 作成
- マーク
- 一致
- マッチング
- MDN
- メッセージ
- メッセージ
- 方法
- Microsoft
- かもしれない
- 最小
- 他には?
- モジラ
- しなければなりません
- 必要
- ノース
- 北米
- 今
- 数
- 番号
- オブジェクト
- of
- Office
- on
- かつて
- ONE
- もの
- オンライン
- の
- or
- その他
- さもないと
- 私たちの
- でる
- 概要
- パラメーター
- 部
- 特定の
- 部品
- パス
- 通過
- パターン
- パターン
- 電話
- 場所
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- さらに
- ポイント
- 貧しいです
- 人気
- 電力
- 強力な
- 実用的
- 主に
- プログラミング
- プログラミング言語
- 適切な
- 正しく
- 提供します
- 提供
- 目的
- 質問
- すぐに
- 範囲
- RE
- 読む
- 準備
- 実現する
- 受け入れ
- 正規表現
- レギュラー
- 残り
- 残っている
- 必要とする
- の提出が必要です
- 必要
- 責任
- REST
- 結果
- return
- 収益
- リング
- 堅牢な
- ルート
- ルール
- s
- 同じ
- Save
- 節約
- 言う
- シナリオ
- 検索
- セクション
- セクション
- 送信
- 送信
- 送る
- シーケンス
- サービス
- セッションに
- Shadow
- シート
- すべき
- 側
- 符号
- 同様の
- 同様に
- 簡単な拡張で
- 単に
- から
- SMS
- So
- 一部
- 何か
- 特別
- 特定の
- 指定の
- ステージ
- 規格
- start
- ステートメント
- 米国
- Force Stop
- 保存され
- 簡単な
- 文字列
- 構造
- 概要
- 取り
- 仕事
- 条件
- test
- テスト
- より
- それ
- エリア
- この線
- アプリ環境に合わせて
- それら
- その後
- そこ。
- ボーマン
- 彼ら
- この
- 三
- 全体
- 時間
- <font style="vertical-align: inherit;">回数</font>
- タイトル
- 〜へ
- 一緒に
- 豊富なツール群
- 遷移
- true
- 2
- わかる
- 理解する
- 理解する
- 理解された
- 予期しない
- ユニーク
- ユナイテッド
- 米国
- つかいます
- 使用事例
- 中古
- ユーザー
- 操作方法
- users
- 使用されます
- 通常
- 利用された
- 検証
- さまざまな
- 欲しいです
- 方法
- we
- ウェブ
- Webアプリケーション
- この試験は
- いつ
- かどうか
- which
- 広く
- 意志
- 以内
- 無し
- ワーキング
- でしょう
- 書きます
- 書き込み
- You
- あなたの
- ゼファーネット
- ゼロ
- 〒