正则表达式不适用于m-d-Y

时间:2017-09-25 12:55:32

标签: javascript jquery

我正在检查格式的日期["月"] [" /或 - "] ["日期"] [" /或 - "] [年]

var regex = /^(0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$/;
    if(dateValue.match(regex))
       return true;
    else
       return false;  

上面的代码总是返回false。如果我输入" 09/08 / 2017",它仍会返回false

4 个答案:

答案 0 :(得分:1)

试试这个

var regex = /^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/;

答案 1 :(得分:0)

试试这个

var regex = /^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/ ;

demo here

答案 2 :(得分:0)

你必须逃避你的正则表达式中的斜杠'/'。尝试:

/^(0[1-9]|1[012])[-\/.](0[1-9]|[12][0-9]|3[01])[-\/.](19|20)\d\d$/

答案 3 :(得分:0)

试试这个:

var regex = /(0[1-9]|1[0-2])(-|\/)(0[1-9]|[12]\d|3[01])(-|\/)([12]\d{3})/;
console.log(regex.test('08/21/2017'));
console.log(regex.test('11-10-2008'));
console.log(regex.test('02.15.2008'));
console.log(regex.test('13/19/2008'));

可以找到here的解释。