Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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:是否有一种更短的方法可以用正则表达式验证日期?我希望允许m/d/yyyy以及mm/dd/yyyy_Javascript_Regex_Validation_Date - Fatal编程技术网

Javascript:是否有一种更短的方法可以用正则表达式验证日期?我希望允许m/d/yyyy以及mm/dd/yyyy

Javascript:是否有一种更短的方法可以用正则表达式验证日期?我希望允许m/d/yyyy以及mm/dd/yyyy,javascript,regex,validation,date,Javascript,Regex,Validation,Date,我的目标是在javascript中验证用户输入的日期 我的代码基于,但该代码仅用于验证mm/dd/yyyy if(!/^\d{2}\/\d{2}\/\d{4}$/.test(dateString)) return false; 我还希望允许用户输入m/d/yyyy(换句话说,没有前导零) 下面的代码似乎有效,但我想知道是否有一种方法可以在一行中使用regex实现这一点 if( !/^\d{2}\/\d{2}\/\d{4}$/.test(dateString) &&

我的目标是在javascript中验证用户输入的日期

我的代码基于,但该代码仅用于验证mm/dd/yyyy

if(!/^\d{2}\/\d{2}\/\d{4}$/.test(dateString))
    return false;
我还希望允许用户输入m/d/yyyy(换句话说,没有前导零)

下面的代码似乎有效,但我想知道是否有一种方法可以在一行中使用regex实现这一点

if(
    !/^\d{2}\/\d{2}\/\d{4}$/.test(dateString) && 
    !/^\d{1}\/\d{1}\/\d{4}$/.test(dateString) &&
    !/^\d{1}\/\d{2}\/\d{4}$/.test(dateString) &&
    !/^\d{2}\/\d{1}\/\d{4}$/.test(dateString)
  )
  return false;

PS链接脚本的另一部分验证输入的其他方面,但我不会修改该部分。

您可以指定要匹配的最小和最大字符数,如下所示

if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString))

注意:使用正则表达式验证日期字符串并不是一种简单的方法。

请不要使用正则表达式。您真的要接受2014年31月31日<代码>作为有效日期吗?使用完整日期分析器。无需正则表达式-在“/”上拆分字符串,然后将每个元素强制转换为
Number
,并检查其是否在有效范围内。链接脚本的另一部分处理日期的其他方面。链接脚本的另一部分验证其他方面。那个完整的脚本不是完全可靠的吗?@CarbonandH20如果它解析了日期字符串并验证了它,那么就可以了。