Javascript:是否有一种更短的方法可以用正则表达式验证日期?我希望允许m/d/yyyy以及mm/dd/yyyy
我的目标是在javascript中验证用户输入的日期 我的代码基于,但该代码仅用于验证mm/dd/yyyyJavascript:是否有一种更短的方法可以用正则表达式验证日期?我希望允许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) &&
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如果它解析了日期字符串并验证了它,那么就可以了。