日期格式的正则表达式模式yyyy的第一个星期一/月份和y / yy的星期一/月

问题描述 投票:0回答:1

我具有以下日期格式的正则表达式模式,但它们无法正常工作

第一个星期一/月yyyy(应与1785年2月2日,1999年4月1日,2000年4月3日,1999年1月4日的类型相匹配的日期)

mon / month,1,yyyy(应与类型为2000年11月2日,2000年11月4日的日期匹配)

yyyy星期一/月1日-\s?(?:0?[1-9]|[1,2][0-9]|3[0-1])(?:nd|rd|th|st)?(?:[\s|,|]?\s?)(?:[Jj]an(?:uary)?|[Ff]eb(?:ruary)?|[Mm]ar(?:ch)?|[Aa]pr(?:il)?|[Mm]ay|[Jj]une|[Jj]uly|[Aa]ug(?:ust)?|[Ss]ept(?:ember)?|[Oo]ct(?:ober)?|[Nn]ov(?:ember)?|[Dd]ec(?:ember)?)\s\d{4}

[mon / month,1,yyyy-\s?(?:[Jj]an(?:uary)?|[Ff]eb(?:ruary)?|[Mm]ar(?:ch)?|[Aa]pr(?:il)?|[Mm]ay|[Jj]une|[Jj]uly|[Aa]ug(?:ust)?|[Ss]ept(?:ember)?|[Oo]ct(?:ober)?|[Nn]ov(?:ember)?|[Dd]ec(?:ember)?)(?:[\s|,]?\s?)(?:0?[1-9]|[1,2][0-9]|3[0-1])(?:[\s|,]?\s?)\s\d{4}

[这两种格式在一年中都使用了4位以上的数字,我可以给200000年11月2日,并且匹配成功,它应该只接受4位数字

regex
1个回答
0
投票

尝试在两个正则表达式的末尾添加\b。这将迫使日期在“单词边界”处中断,这意味着如果您的位数超过四位,则正则表达式将不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.