【发布时间】:2020-04-14 19:48:30
【问题描述】:
我需要一个只允许 4 位数字的正则表达式,而这四个数字可以在任何位置包含 0。
下面是我的代码:
查看:
<label asp-for="UserId"></label><br />
<input asp-for="UserId" class="form-control" maxlength="4" />
<span asp-validation-for="UserId" class="text-danger"></span>
型号:
[RegularExpression(@"^([0-9]{4})$", ErrorMessage = "Please enter last 4 digits of your user Id.")]
[Display(Name = "Last 4 digits of user Id")]
public int? UserId{ get; set; }
但是如果我输入 0645,它会抛出一个错误“请输入您的用户 ID 的最后 4 位数字。”。如果我将其更改为 4567,它可以正常工作。那么我应该如何修复我的正则表达式?
【问题讨论】:
-
它会抛出什么错误?
-
@Sweeper 它给出了我的错误信息;请输入您的用户 ID 的最后 4 位。
-
它是否与
@"^(\d{4})$"引发了同样的错误? -
0645被截断为 int 为645将其更改为字符串以保留0...regex不是问题,数据类型是。 -
我相信问题不在于您的正则表达式,而在于您的输入字段。您将
UserId定义为int。这只会为您提供输入的数字表示。因此0123在数字上只是123。如果您将输入字段类型更改为string,您应该没问题。
标签: c# regex asp.net-mvc asp.net-core