jQuery 验证引擎:更改日期格式
jQuery Validation Engine : Change Date Format
My Datepicker code
$(function(){
$( "#task_start_date").datepicker({
dateFormat: 'dd-M-yy',
showOn: 'button',
buttonImage :image_us,
buttonImageOnly: true
});
});
网页输入:
<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
以匹配预期的日期选取器输出。在数据库中插入的值是01-MAR-12
的,而不是2014-11-26
的。
谢谢。
^(0?[1-9]|[12][0-9]|3[01])[-][A-Z]{3}[-]''d{2}$
这应该可以解决问题。您尝试的正则表达式适用于 dd/mm/yyyy 或 dd-mm-yyyy 的格式。
试试这个(未测试):
(?:0[1-9]|1[0-9]|2[0-9]|3[01])-(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-'d{2}
-
(?:0[1-9]|1[0-9]|2[0-9]|3[01])
:比赛01至09,10至19,20至29,30至31。但是 Feb 没有超过 29 的任何东西,所以你如何处理我们不是基于正则表达式的 -
-
:匹配连字符 -
(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)
: 比赛月份 -
-
:匹配连字符 -
-'d{2}
:按任意顺序匹配任意两位数字
您可以缩小正则表达式,但我现在没有时间。
使用这个
"date": {
// Check if date is valid by leap year
"func": function (field) {
var pattern = new RegExp(/^(0?[1-9]|[12][0-9]|3[01])['/'-'.](0?[1-9]|1[012])['/'-'.]('d{4})$/);
var match = pattern.exec(field.val());
if (match == null)
return false;
var year = match[3];
var month = match[2]*1;
var day = match[1]*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 dd-mm-yyyy format"
},
相关文章:
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式