使用正则表达式验证信用卡月份和年份
Using a regular expression to validate credit card month and year
我在验证模型中的几个字段时遇到了一些问题,即信用卡的到期月份和年份。
我要求的月份模式显然是:
1-12
我要求的年份图案是:
0-99
我在我的模型中设置了我的正则表达式,如下所示:
[UmbracoRequired("Booking.Validation.Required")]
[UmbracoRegularExpression("Booking.Validation.CreditMonthFormat", "[1-12]")]
public int booking_expirymonth { get; set; }
[UmbracoRequired("Booking.Validation.Required")]
[UmbracoRegularExpression("Booking.Validation.CreditYearFormat", "[0-99]")]
public int booking_expiryyear { get; set; }
日期 selection 是通过视图中的两个 select 字段创建的:
月份
01、02、03、04 等
年
01、02、03
然而,当它进入控制器时,它会去除前导零。我不太在意这个,因为我可以稍后处理它,但问题是即使传递的值完全有效,模型在到达 !ModelState.IsValid 检查时始终被视为无效。
我查看 VS 中的代码,可以看到它收到了年份的“17”,表明它是一个字符串,但是当我查看实际模型值的值时,它被视为一个 int。
任何人都可以帮我解决这个问题,因为它让我抓狂。
对于 01-12 使用以下正则表达式
0[1-9]|1[0-2]
这适用于 01,02,03...12
供 1-12 岁使用
[2-9]|1[0-2]?
这将适用于 1,2..
& 01-99 年
^(0?[1-9]|[1-9][0-9])$
我在验证模型中的几个字段时遇到了一些问题,即信用卡的到期月份和年份。
我要求的月份模式显然是:
1-12
我要求的年份图案是:
0-99
我在我的模型中设置了我的正则表达式,如下所示:
[UmbracoRequired("Booking.Validation.Required")]
[UmbracoRegularExpression("Booking.Validation.CreditMonthFormat", "[1-12]")]
public int booking_expirymonth { get; set; }
[UmbracoRequired("Booking.Validation.Required")]
[UmbracoRegularExpression("Booking.Validation.CreditYearFormat", "[0-99]")]
public int booking_expiryyear { get; set; }
日期 selection 是通过视图中的两个 select 字段创建的:
月份
01、02、03、04 等
年
01、02、03
然而,当它进入控制器时,它会去除前导零。我不太在意这个,因为我可以稍后处理它,但问题是即使传递的值完全有效,模型在到达 !ModelState.IsValid 检查时始终被视为无效。
我查看 VS 中的代码,可以看到它收到了年份的“17”,表明它是一个字符串,但是当我查看实际模型值的值时,它被视为一个 int。
任何人都可以帮我解决这个问题,因为它让我抓狂。
对于 01-12 使用以下正则表达式
0[1-9]|1[0-2]
这适用于 01,02,03...12
供 1-12 岁使用
[2-9]|1[0-2]?
这将适用于 1,2..
& 01-99 年
^(0?[1-9]|[1-9][0-9])$