JavaScript で「mm/dd/yyyy」形式の日付を確実に検証する方法

Patricia Arquette
リリース: 2024-11-01 19:49:02
オリジナル
841 人が閲覧しました

How to Reliably Validate Dates in

JavaScript で「mm/dd/yyyy」形式の日付を検証する

「mm/dd/」形式の日付を検証しようとする場合yyyy" に提供されたコードを使用すると、問題が発生する可能性があります。考えられるエラーを分析し、より信頼性の高い解決策を提供しましょう。

元の関数は、入力文字列が目的の形式と一致するかどうかを確認し、指定された値から Date オブジェクトを作成しようとします。ただし、入力日付と Date オブジェクトから計算された部分の間に不一致があり、誤った検証が行われる可能性があります。

検証関数の改善

これに対処するには、より堅牢な検証関数を利用できます:

<code class="javascript">function isValidDate(dateString) {
  // Validate Format
  if (!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString)) return false;

  // Parse Date Components
  const parts = dateString.split("/");
  const day = parseInt(parts[1], 10);
  const month = parseInt(parts[0], 10);
  const year = parseInt(parts[2], 10);

  // Check Range of Month and Year
  if (year < 1000 || year > 3000 || month < 1 || month > 12) return false;

  // Adjust for Leap Years
  const monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  if ((year % 400 === 0) || ((year % 100 !== 0) && (year % 4 === 0))) {
    monthLength[1] = 29;
  }

  // Check Valid Day Range
  return day > 0 && day <= monthLength[month - 1];
}</code>
ログイン後にコピー

この関数は、形式のチェック、個々のコンポーネントの解析、月と年の範囲の有効性の評価、およびうるう年を考慮して有効な値を決定することにより、日付文字列を徹底的に検証します。日の範囲

以上がJavaScript で「mm/dd/yyyy」形式の日付を確実に検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!