
日付 regex JavaScript バリデーター
日付 regex JavaScript バリデーターを使って、DD/MM/YYYY、MM-DD-YYYY、ISO 8601 タイムスタンプなどの日付フォーマットを簡単にテスト・検証できます。フォームの構築、ログの解析、JavaScript でのデータクリーニングに最適です。パターンの実験にはJavaScript Regex テスターも、メール regex JavaScript バリデーターやIP アドレス regex JavaScript バリデーターと組み合わせてユーザーデータの完全な検証も行えます。
日付 regex JavaScript バリデーター - ドキュメント
日付 regex とは何ですか?
JavaScript において、日付用の正規表現(regex)は文字列が特定の日付フォーマットに一致するかどうかを確認するものです。フォーム、データフィルター、ログの構築において、日付の検証はユーザーが正確にデータを入力し、下流のエラーを防ぐことに役立ちます。
日付 regex は以下のようなパターンに一致します:
DD/MM/YYYY
MM-DD-YYYY
YYYY-MM-DD
ISO 8601 タイムスタンプ(例:2023-06-05T12:30:00Z)
日付検証用 JavaScript regex パターン
DD/MM/YYYY の基本的な検証に使用される regex:
/^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/パターンの解説:
^(0[1-9]|[12][0-9]|3[01])- 日(01-31)を検証[\/\-]-/または-を区切り文字として照合(0[1-9]|1[0-2])- 月(01-12)を検証(19|20)\d\d$- 年(1900-2099)を検証
JavaScript での日付検証方法
function isValidDate(dateString) {
const dateRegex = /^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/;
return dateRegex.test(dateString);
}
console.log(isValidDate("25/12/2024")); // true
console.log(isValidDate("2024-12-25")); // falseJavaScript の組み込み Date コンストラクターは DD/MM/YYYY 形式をネイティブに解析しません。この形式を Date オブジェクトに変換するには、まず YYYY/MM/DD に変換する必要があります。
let dateInput = "15/05/2019"; // DD/MM/YYYY
let dateArray = dateInput.split("/");
let newDate = `${dateArray[2]}/${dateArray[1]}/${dateArray[0]}`;
console.log(newDate); // 2019/05/15 (YYYY/MM/DD)日付の有効性を確認する方法
フォーマットと日付の実際の有効性を両方確認するには、JavaScript の Date コンストラクターと isNaN() を使用します:
function isDateValid(dateStr) {
return !isNaN(new Date(dateStr));
}
console.log(isDateValid("15/05/2019")); // false (DD/MM/YYYY は認識されない)
console.log(isDateValid("05/15/2019")); // true
console.log(isDateValid("2019/05/15")); // trueDD/MM/YYYY フォーマットに変換する
function formatDateToDDMMYYYY(dateInput) {
const dateObj = new Date(dateInput);
if (isNaN(dateObj)) return "Invalid date";
let day = dateObj.getDate();
let month = dateObj.getMonth() + 1; // 月は 0 から始まる
const year = dateObj.getFullYear();
day = day < 10 ? "0" + day : day;
month = month < 10 ? "0" + month : month;
return `${day}/${month}/${year}`;
}
console.log(formatDateToDDMMYYYY("2019/05/15")); // "15/05/2019"日付の比較
const firstDate = new Date('2024-06-01');
const secondDate = new Date('2024-06-05');
console.log(firstDate < secondDate); // true
console.log(firstDate > secondDate); // falseその他のパターン
ISO 8601(例:2024-06-05T12:30:00Z)
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/MM-DD-YYYY フォーマット
/^(0[1-9]|1[0-2])[\-](0[1-9]|[12][0-9]|3[01])[\-](19|20)\d\d$/実際のユースケース
フォーム検証:フォームで有効な生年月日、予約日、締め切り日が入力されているか確認します。
ログ解析:JavaScript Regex テスターを使ってサーバーログから有効な日付文字列を抽出します。
データクリーニング:JavaScript ベースのデータ処理ツールで日付フォーマットを標準化します。
組み合わせをお勧めするツール
JavaScript Regex テスター - 複雑な日付パターンを素早く構築・デバッグ
メール regex JavaScript バリデーター - 日付入力と合わせてユーザー情報を検証
IP アドレス regex JavaScript バリデーター - ネットワークデータのタイムスタンプログと組み合わせ
パスワード regex JavaScript バリデーター - アカウント作成やサインアップフォームで使用
プロのヒント
JavaScript では高速な regex チェックに
String.prototype.match()または.test()を使用してください。日付の論理検証は別途行ってください(例:2 月 30 日は regex が通しても無効です)。
API とデータベースの一貫性のために ISO 8601 を使用してください。
マッチした部分を取り出す必要がない場合は非キャプチャグループ(
(?:...))を使用してください。パフォーマンスのために regex を一度コンパイルして検証関数全体で再利用してください。
Frequently Asked Questions
JavaScript regex は 31/02/2023 のような無効な日付を検出できますか?
日付 regex ではスラッシュとダッシュのどちらを使うべきですか?
[-/] を使って両方を許可してください。regex で ISO タイムスタンプを検証できますか?
Date.parse() や new Date() を使用してください。この regex は Node.js のようなバックエンドシステムで再利用できますか?
このツールで他のフォーマットの日付 regex パターンをテストできますか?
Related Articles






