繁体   English   中英

JavaScript日期验证

[英]Javascript Date Validation

如何使用JavaScript验证特定格式的日期字符串? 我有一个日期选择器,其显示格式为“ dddd MMMM dd,yyyy”(显示如下:“ Wednesday February 03,2010”。)因此,我必须使用JavaScript验证此格式。 请帮助我实施此操作。

如果要精确检查该格式,可以使用正则表达式:

var re = new RegExp( '^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)\\s*(January|February|March|April|May|June|July|August|September|November|December)\\s*(\\d\\d),\\s*(\\d{2,4})$' );

var date = 'Wednesday February 03, 2010';
if ( ( match = date.match( re ) ) != null )
{ // valid
    alert( match );
}

或者,如果您只需要知道它是一个有效的日期,可以使用哪种格式,只需将其转换为:

var dateSec, dateObj, dateStr = 'Wednesday February 03, 2010';
dateSec = Date.parse( dateStr ); // unix timestamp
if ( dateSec ) // not NaN
   dateObj = new Date( dateSec ); // date object

如果您的应用程序需要日期处理方法,则可能要考虑使用类似Datejs库的方法。

如果选择Datejs,则可以使用parseExact()方法进行验证。 如果日期有效,它将返回一个日期对象;如果日期无效,则返回null。

本地JavaScript对日期格式和验证的支持受到一定限制。

看看http://www.datejs.com/

您可以执行类似Date.parse('my date string')的操作

Datejs或Dojo可以做到这一点。 使用dojo.date.locale.parse

var dateAsString = "Wednesday February 03, 2010";
var dateObject = dojo.date.locale.parse(dateAsString, {datePattern: "EEEE MMMM dd, yyyy", selector: "date", locale: "en"});

dateObject将包含Date对象;如果字符串与指定的模式不匹配,则为null。 这可以与固定语言或任何本地语言一起使用。

但是,日期选择器将其用作序列化的Date格式似乎并不正确。 它应该使用易于解析的内容,例如ISO8601表示形式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM