2017-09-25 120 views
-1

我检查的日期格式[ “月”] [ “/或 - ”] [ “日”] [ “/或 - ”] [年份]正则表达式不工作的MDY

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。如果我输入 “2017年9月8日”,它仍然返回false

+0

*“也请提供...”*。 Stackoverflow不是免费的代码写作服务 – charlietfl

+0

请帮助我!我不能写正则表达式... – Nida

+0

这真的很有帮助,试试吧https://regexr.com粘贴你的正则表达式,看看它做错了什么(有解释标签) – Akxe

回答

1

试试这个

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

试试这个

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

演示here

0

你逃脱斜线“ /'在你的正则表达式中。尝试:

/^(0[1-9]|1[012])[-\/.](0[1-9]|[12][0-9]|3[01])[-\/.](19|20)\d\d$/ 
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