1

好的,我在表单中有一个输入,这是一个日期输入。我希望它接受基于“XX/XX/XXXX”之类的模式的字符。目前它只接受数字和“/”。但我不希望用户输入“X/XXXX/XX”之类的日期或其他类型的日期,也不想像“//XX/XXX/XXX”这样写错。我不知道如何在这个或 jQuery 上使用 js,因此用户根据模式输入日期而不是其他方式。

4

3 回答 3

3

廉价而简单的方法可能只是实现jQuery UI 日期选择器控件,以便您可以通过它来控制输入格式。

它基本上是在回避问题,但可能会为您解决实际问题。

于 2012-06-06T11:57:00.597 回答
1

使用正则表达式^(3[0-1]|[0-2]?[0-9])\/(0?[0-9]|1[0-2])\/(2[0-9]+)$

var date = "20/12/2012";

console.log(isDateOK(date));

function isDateOK(date) {
    return date.match(/^(3[0-1]|[0-2]?[0-9])\/(0?[0-9]|1[0-2])\/([1-2][0-9]{3})$/);
}

如果不匹配,它将返回 false。此示例使用 DD/MM/YYYY。如果您想要 MM/DD/YYYY,请改用以下正则表达式:^(0?[0-9]|1[0-2])\/(3[0-1]|[0-2]?[0-9])\/[1-2][0-9]{3$

JSFiddle:http: //jsfiddle.net/UBFeN/2/

于 2012-06-06T12:00:35.037 回答
1

看看: http ://digitalbush.com/projects/masked-input-plugin/

于 2012-06-06T11:56:24.567 回答