Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期正则表达式,如2010-06-03_Javascript_Regex - Fatal编程技术网

Javascript日期正则表达式,如2010-06-03

Javascript日期正则表达式,如2010-06-03,javascript,regex,Javascript,Regex,我需要一个函数来验证标题中格式的日期。我的功能有什么问题 function validateDate(date) { var pattern = new RegExp("^\d{4}-\d{2}-\d{2}$"); if (pattern.test(date)) return true; return false; } 谢谢 您需要使用正则表达式对象:/^\d{4}-\d{2}-\d{2}$/或转义反斜杠:“^\\d{4}-\\d{2}-\\d{2}$” 此外,如果字符串中除了日期之

我需要一个函数来验证标题中格式的日期。我的功能有什么问题

function validateDate(date) {
 var pattern = new RegExp("^\d{4}-\d{2}-\d{2}$");
 if (pattern.test(date))
  return true;
 return false;
}

谢谢

您需要使用正则表达式对象:
/^\d{4}-\d{2}-\d{2}$/
或转义反斜杠:
“^\\d{4}-\\d{2}-\\d{2}$”

此外,如果字符串中除了日期之外还有其他内容(例如空格),则此正则表达式将失败

所以

可能是更好的选择

这个正则表达式(当然)不会检查有效日期,只检查由四位数字、一个连字符、两位数字、另一个连字符和两个以上数字组成的字符串。你可能想

  • 使前导零可选(即使用
    \d{1,2}
    而不是
    \d{2}
  • 在正则表达式之外执行实际日期验证

  • 您可以使用正则表达式(某种程度上)验证日期,但它们并不漂亮。如果您想计算闰年或限制日期范围,则更糟糕。

    您需要使用正则表达式对象:
    /^\d{4}-\d{2}-\d{2}$/
    或避开反斜杠:
    “^\\d{4}-\\d{2}-\\d{2}$”

    此外,如果字符串中除了日期之外还有其他内容(例如空格),则此正则表达式将失败

    所以

    可能是更好的选择

    这个正则表达式(当然)不会检查有效日期,只检查由四位数字、一个连字符、两位数字、另一个连字符和两个以上数字组成的字符串。你可能想

  • 使前导零可选(即使用
    \d{1,2}
    而不是
    \d{2}
  • 在正则表达式之外执行实际日期验证

  • 您可以使用正则表达式(某种程度上)验证日期,但它们并不漂亮。更糟糕的是,如果你想计算闰年或限制日期范围。

    这是可行的,但它会验证9999-99-99之类的日期

    function validateDate( date )
    {
      return /^\d{4}\-\d{2}\-\d{2}$/.test( date )
    }
    
    console.log( validateDate ( '2010-01-01' ) ); // True
    

    这是可行的,但它将验证日期,如9999-99-99

    function validateDate( date )
    {
      return /^\d{4}\-\d{2}\-\d{2}$/.test( date )
    }
    
    console.log( validateDate ( '2010-01-01' ) ); // True
    

    这是您可以从以下方面获得帮助的(未经我自己测试):

    }


    --莱因哈德(Reinhard)

    这是您可以从以下方面获得帮助的(未经我自己测试):

    }


    --Reinhard

    Semi OT:
    if(x)返回true
    (否则)
    返回false
    是不好的做法-只需使用
    返回(x)
    。如果(x)返回true,则使用SEMIOT:
    (否则)
    返回false
    是不好的做法-只需使用
    返回(x)
    。谢谢!您还消除了我对/REGEX/符号的混淆。我试过了,但引用了它,不知道它会自动创建一个regex object=Dthanks!您还消除了我对/REGEX/符号的混淆。我试过了,但引用了它,不知道它会自动创建一个regex对象=D
    function validateDate(date) {
    var pattern = new RegExp("(19|20)[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])");
    var match = pattern.exec(date);
    if (match != null) {
        return true;
    } else {
       return false;    
    }