我的RegularExpression技能需要改进。所以也许有人可以帮助我回到正轨。
背景:我有一个TextBox,用户可以在其中输入年/周组合,而不是输入日期。我将服务器端的转换为日期实例(该周的最后一天)。现在我必须使用RegularExpressionValidator来验证它。
格式:对于2010年和日历周32,示例格式可以是10w32
。数字 w 是大小写的。周数应在1到53之间。
其他有效的例子:
99w02 -> 1999 week 2
2W53 -> 2002 week 53
2001w1 -> 2001 week 1
提前谢谢。
答案 0 :(得分:2)
怎么样
\d{1,4}[wW](\d|([0-4]\d)|(5[0123]))
? (当然,逃脱了。)
说明:
交替构造中的某些分组可能是不必要的 - 这也可能有效:
\d{1,4}[wW](\d|[0-4]\d|5[0123])
...测试一下。
这是完全未经测试的,请注意......单元测试是你的朋友,并仔细审查。
在开头使用^
,在结尾使用$
强制正则表达式匹配整个字符串,例如
^\d{1,4}[wW](\d|[0-4]\d|5[0123])$