我想要一个验证标题格式日期的函数。我的功能出了什么问题?
function validateDate(date) {
var pattern = new RegExp("^\d{4}-\d{2}-\d{2}$");
if (pattern.test(date))
return true;
return false;
}
谢谢!
答案 0 :(得分:4)
您需要使用正则表达式对象:/^\d{4}-\d{2}-\d{2}$/
或转义反斜杠:"^\\d{4}-\\d{2}-\\d{2}$"
。
此外,如果除日期之外的字符串中还有其他内容(例如空格),则此正则表达式将失败。
所以
var pattern = /^\s*\d{4}-\d{2}-\d{2}\s*$/;
可能是更好的选择。
此正则表达式(当然)不会检查有效日期,仅适用于由四位数字组成的字符串,连字符,两位数,另一个连字符和两位数字。你可能想要
\d{1,2}
代替\d{2}
)你可以(使用正则表达式)来验证日期,但它们并不漂亮。如果你想考虑闰年或限制日期范围,那就更糟了。
答案 1 :(得分:0)
但这可以验证日期,如9999-99-99。
function validateDate( date )
{
return /^\d{4}\-\d{2}\-\d{2}$/.test( date )
}
console.log( validateDate ( '2010-01-01' ) ); // True
答案 2 :(得分:0)
这是你在RegexBuddy的帮助下得出的结果(我自己未经测试):
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;
}
}
- 莱因哈德