这个正则哪里写错了?
在验证生日的日时
表达式为var reg=/^(0?[1-9])|([1-2]\d)|(3[0-1])$/;
然后输入1111也符合要求 但是当我改为
var reg=/^((0?[1-9])|([1-2]\d)|(3[0-1]))$/;就正常了,请问这两者有什么区别吗?
------解决方案--------------------区别还是很明显的,在用正则的时候一定要注意
------解决方案--------------------(或)的使用
var reg=/^(0?[1-9])
------解决方案--------------------([1-2]\d)
------解决方案--------------------(3[0-1])$/; 意思匹配三种情况
1.匹配开头 带0或者不带0 ,然后匹配非0数字
2.匹配1或2,后跟任意数字
3.匹配3,后跟0或1,然后为结束标记
而var reg=/^((0?[1-9])
------解决方案--------------------([1-2]\d)
------解决方案--------------------(3[0-1]))$/; 利用括号将或括起来,那么必须匹配开始标记,然后匹配或中的三个调剂,最后必须匹配结束标记。
------解决方案--------------------没有大括号的时候 是三个单一的元素 三种情况都可以
包含大括号以后就只能是三者其一
------解决方案--------------------楼上几位其实说的很明白。
你再好好去理解理解。