【问题标题】:ASP.NET MVC Data Validation for Phone Number电话号码的 ASP.NET MVC 数据验证
【发布时间】:2018-10-21 11:01:16
【问题描述】:

希望你过得好, 我是 ASP.NET MVC 的新手,正在对 int 类型的 phoneNumber 属性进行数据验证。

我希望电话号码从 0 开始,然后是 9 位数,但从 0 开始很重要。

所以,我做了这个正则表达式 ^[0]{1}[0-9]{9}$

但问题是,每当http post请求到来,我看到数据,我发现电话号码不是从零开始,而是从0之后的数字开始。像这样

0557998765(这是应该出现的) 557998765(不幸的是出现了)

有人可以帮忙吗? 这是我的模型中 phoneNumber 属性的代码。

[Required(ErrorMessage = "You must provide a phone number")]
[DataType(DataType.PhoneNumber)]
[RegularExpression("^[0]{1}[0-9]{9}$", ErrorMessage = "Phone Number must be 10 Digits Long.")]
public int PhoneNumber { get; set; }

【问题讨论】:

  • 您的属性必须是string,而不是int
  • 抱歉,这会使电话号码属性接受字符
  • 不是你的正则表达式,它不会。 int 不能与 0 一起使用(除非它是数字零)。
  • int 将省略 0。您可以将其作为字符串,然后使用正则表达式。

标签: asp.net validation asp.net-mvc-5


【解决方案1】:

你可以试试这条线,而不是你的线:

[RegularExpression("^(0)(\d{9})$", ErrorMessage = "Phone Number must be 10 Digits Long.")]

【讨论】:

    【解决方案2】:

    32 位整数不足以容纳电话号码的值,如果 第一个数字大于“2”。最大值为 2147483647。 因此,如果您的电话号码以 3 或更大开头,则无法确定有效。 这个字段需要是一个字符串。

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2011-02-03
      相关资源
      最近更新 更多