正则表达式的疑问
利用控件限制输入范围:RegularExpressionValidator
使用正则表达式进行匹配
要求1-36.很明确啦.是彩票号码
我知道用ajax来检测或者用JavaScript来检测是非常快实现的事情.但是想了解一下正则表达式(其实是不会JavaScript和ajax)
分析:
1-9之间数字为1位.所以特殊处理,正则表达式为[1-9]{1},理论上来说应该是{0}才对的,但是{0}匹配不到东西.也不知道是不是这样理解
10-29属于正常范围.可以统筹为:[1-2][0-9]{1},很明确.这个没有任何异议
30-36也属于特殊范围:首位特定为3,尾数为0-6,所以:[3][0-6]{1}
综合起来就是:([1-9]{1})|([1-2][0-9]{1})|([3][0-6]{1})
放到RegularExpressionValidator的ValidationExpression中.进行匹配.发现错误....汗一个
去百度知道提问.得到的答案是一样的.他们说{1}可以省略.我也不知道为什么.因为如果省略的话.那么匹配范围会不会变大呢.我没有去测试.
既然不行.那么就先匹配10-36之间的数字.再来匹配1-9吧.调换一下顺序
([1-2][0-9]{1})|([3][0-6]{1})|([1-9]{1})
经过测试.通过了.那个郁闷啊.怎么1-9要放到后面了.....这是个问题
只匹配年月格式,前面使用d{4}也行
如: [0-9]{4}\/(([0][1-9]{1})|([1][0-2]{1}))
或: d{4}\/(([0][1-9]{1})|([1][0-2]{1}))