(((19)\d{2})|(2000))-(1[0-2]|0?[1-9])-\b(0?[1-9]\b|\b[1-2][0-9]\b|\b3[0-1]\b)
——————————————————————————————————
((2001)-0?[1-8]-\b(0?[1-8]\b|\b[1-2][0-9]\b|\b3[0-1]\b))
第一个是验证日期是否在1900-2000年之间,第二个是验证是否在2000年1月到8月之间。
我把两个正则表达左右括号打起来,用|连接,为什么只能验证第一个,第二个不行,求高人指教
当然不能匹配后面的条件了,我们默认的正则匹配模式是“贪婪模式”这里涉及到匹配模式,前面的匹配正确了后面的就不匹配了。你可以分开两个条件分开验证
需要用$来表示字符串的结尾,((2001)-0?[1-8]-\b(0?[1-8]\b$|\b[1-2][0-9]\b|\b3[0-1]\b))$