正则表达式的疑问

利用控件限制输入范围: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})

放到RegularExpressionValidatorValidationExpression中.进行匹配.发现错误....汗一个

去百度知道提问.得到的答案是一样的.他们说{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}))

posted @ 2008-10-29 09:57  Larify  阅读(151)  评论(0编辑  收藏  举报