大写的jQuery Datepicker格式

时间:2014-11-27 12:13:55

标签: javascript jquery regex

var pattern = new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2,4})/);
var match = pattern.exec(field.val());
if (match == null)
 return false;

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
var year = match[3];
var month = match[2];
var day = match[1];

var date = new Date(year, months.indexOf(month), day); // because months starts from 0.
var isOk = (date.getYear() == year && date.getMonth() == months.indexOf(month) && date.getDate() == day);

return isOk;

上述脚本允许用户以27-Nov-14格式输入日期,但不能在27-NOV-14中输入。

如何更改正则表达式以允许用户以大写形式输入month,即NOVNov

1 个答案:

答案 0 :(得分:0)

您需要按顺序添加i不区分大小写的标记,以使正则表达式中的字母与大写和小写字母相匹配。

var pattern = new RegExp("([12]\\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2,4})", "i");

必要时使用锚点。

var pattern = new RegExp("^([12]\\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2,4})$", "i");