初学正则表达式,一个小问题。大侠们帮忙解决
刚学的PHP,学到正则了。一个问题百思不得其解"/[0-9]{2,4}-[0-9]{1,2}-[0-9]{1,2}/"
这是个年月日的正则,为何年可以输入4位以上的数字,并且只取最后四位。前面代码和后面写的一样,为何后面的超过规范的两位就出错,而不是像年一样,取最后的。。。
追问:第一个2指的什么?
刚学的PHP,学到正则了。一个问题百思不得其解"/[0-9]{2,4}-[0-9]{1,2}-[0-9]{1,2}/"
这是个年月日的正则,为何年可以输入4位以上的数字,并且只取最后四位。前面代码和后面写的一样,为何后面的超过规范的两位就出错,而不是像年一样,取最后的。。。
追问:第一个2指的什么?
答案:'/(2[0-9]{3}|[0-9]{2})-(1[0-2]|[1-9])-([12]?[0-9]|3[01])/'用这个试一下。
你原来的那个可以匹配:9999-99-99
你要加一个开始和结束啊,最前面加一个^,结尾加一个$按你的思想应该这样
\b[0-9]{2,4}\b-\b[0-9]{1,2}\b-\b[0-9]{1,2}\b
不过可以输入无效的月日