NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
日付 regex JavaScript バリデーター

日付 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")); // false

JavaScript の組み込み 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")); // true

DD/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])--\d\d$/

実際のユースケース

  • フォーム検証:フォームで有効な生年月日、予約日、締め切り日が入力されているか確認します。

  • ログ解析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 はフォーマットのみを確認します。JavaScript で論理的な日付検証と組み合わせる必要があります。

日付 regex ではスラッシュとダッシュのどちらを使うべきですか?

どちらも機能します。データに合わせた方を選ぶか、[-/] を使って両方を許可してください。

regex で ISO タイムスタンプを検証できますか?

はい、regex で構造を確認できますが、完全な検証には Date.parse()new Date() を使用してください。

この regex は Node.js のようなバックエンドシステムで再利用できますか?

はい。regex はブラウザベースの JavaScript と同様に Node.js でも動作します。

このツールで他のフォーマットの日付 regex パターンをテストできますか?

はい、Qodex のバリデーターは試してみたい任意のカスタム regex パターンをサポートしています。

API を今すぐテストしましょう!

平易な言葉で記述するだけで、Qodex が安全ですぐに実行できるテストに変換します。