我想要一个函数来验证标题中格式的日期。我的功能有什么问题?
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}$"
。
此外,如果字符串中除了日期之外还有任何其他内容(例如空格),此正则表达式将失败。
所以
var pattern = /^\s*\d{4}-\d{2}-\d{2}\s*$/;
可能是更好的选择。
此正则表达式(当然)不会检查有效日期,只会检查由四位数字、一个连字符、两个数字、另一个连字符和另外两个数字组成的字符串。你可能想要
- 使前导零可选(即使用
\d{1,2}
而不是\d{2}
) - 在正则表达式之外执行实际日期验证。
您可以(某种程度上)使用正则表达式验证日期,但它们并不漂亮。如果您想考虑闰年或限制日期范围,情况会更糟。
关于Javascript 日期正则表达式 例如。 2010-06-03,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149761/