JavaScript の電話番号正規表現
国ごとに独自の数値形式があり、このデータをデータベースに保存する前に、ユーザーが正しい数値形式を入力していることを確認する必要があります。この記事では、JavaScript で電話番号の正規表現を作成する方法を学習します。
JavaScript の RegEx
正規表現は、文字列内の特定のパターンを見つけることができる検索ツールのようなものです。正規表現を学ぶための良いリソースは https://regexr.com です。JavaScript は、オブジェクトとして正規表現もサポートしています。これらのパターンは、matchAll()
、match()
、replaceAll()
、replace()
、search()
、および split()
で使用されます。正規表現を作成するには、リテラル正規表現を使用する方法と、RegExp オブジェクトのコンストラクター関数を呼び出す方法の 2つがあります。
電話番号 RegEx に移る前に、いくつかの一般的なパターンを理解しましょう。
\d
:この正規表現は任意の数値/桁に一致します。[0-9]
に似ています。\w
:この正規表現は、A
-Z
、a
-z
、0
-9
および_
の範囲内の任意の単語文字コードに一致します。\s
:この正規表現は、スペース、タブ、改行など、すべての空白文字に一致します。\b
:この正規表現は、単語文字と非単語文字の間の任意の単語境界位置または位置(文字列の開始/終了)に一致します。[A-Z]
:この正規表現は、A
-Z
の範囲内の任意の文字コードに一致します。[0-9]
:この正規表現は、0
-9
の範囲の任意の文字コードに一致します。(?:ABC)
:この正規表現は、キャプチャグループを作成せずに、複数のトークンをグループ化します。
各正規表現には、以下にリストされている特定のタグが含まれています。
i
:このフラグは大文字と小文字を区別しないことを意味します。つまり、式全体で大文字と小文字が区別されません。g
:このフラグは、最後の一致のインデックスを維持するグローバル検索を意味します。これにより、後続の検索は前の一致の終了時に開始できます。グローバルフラグがない場合、後続の検索では同じ一致が返されます。m
:このフラグは複数行を意味します。複数行フラグがオンの場合、開始アンカーと終了アンカー(^
と$
)は、チェーン全体の開始と終了ではなく、行の開始と終了に一致します。u
:このフラグは Unicode を意味します。ユーザーは、このフラグをアクティブにすることにより、\ x {FFFFF}
の形式の拡張 Unicode エスケープを使用できます。y
:このフラグはスティッキーを意味します。式は lastIndex の位置にのみ一致し、設定されている場合はグローバルフラグ(g)を無視します。RegEx でのすべての検索は個別であるため、このインジケーターは表示される結果にそれ以上の影響を与えません。s
:このフラグは dotAll を意味します。ピリオド(。
)は、改行を含む各文字に一致します。
JavaScript での正規表現の構文
const regEx = /pattern/;
const regEx = new RegExp('pattern');
サンプルコード:
<form name="form1">
<input type='text' id="phoneNumber" name='text1'/>
<button type="submit" name="submit" onclick="phonenumber()">Submit</button>
</form>
function phonenumber() {
const indiaRegex = /^\+91\d{10}$/;
const inputText = document.getElementById('phoneNumber').value;
if (inputText.match(indiaRegex)) {
console.log('Valid phone number');
} else {
console.log('Not a valid Phone Number');
}
}
出力:
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn