【发布时间】:2015-01-24 09:54:39
【问题描述】:
我的日期选择器代码
$(function(){
$( "#task_start_date").datepicker({
dateFormat: 'dd-M-yy',
showOn: 'button',
buttonImage :image_us,
buttonImageOnly: true
});
});
HTML 输入:
<input type="text" class="form-control validate[required,custom[date]]" name="task_start_date" id="task_start_date" />
正确日期输入验证的 JS 函数:
"date": {
// Check if date is valid by leap year
"func": function (field) {
var pattern = new RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/);
var match = pattern.exec(field.val());
if (match == null)
return false;
var year = match[1];
var month = match[2]*1;
var day = match[3]*1;
var date = new Date(year, month - 1, day); // because months starts from 0.
return (date.getFullYear() == year && date.getMonth() == (month - 1) && date.getDate() == day);
},
"alertText": "* Invalid date, must be in YYYY-MM-DD format"
},
这里regex 需要YYYY-MM-DD (2014-11-26) 格式,但我们使用的是dd-M-yy(01-MAR-12) 格式。
正则表达式尝试:
/^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/
上述regex 无效。如何更改 regex 以匹配预期的日期选择器输出。插入 DB 的值是 01-MAR-12 而不是 2014-11-26。
谢谢。
【问题讨论】:
标签: javascript jquery regex date datepicker