Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 输入的手机号码的值,显示“0”;“不是有效的数字”;尽管输入了10位数的正则表达式_Regex_Asp.net Mvc - Fatal编程技术网

Regex 输入的手机号码的值,显示“0”;“不是有效的数字”;尽管输入了10位数的正则表达式

Regex 输入的手机号码的值,显示“0”;“不是有效的数字”;尽管输入了10位数的正则表达式,regex,asp.net-mvc,Regex,Asp.net Mvc,我试图对用户输入的手机号码进行验证,尽管为10位手机号码输入了正则表达式 这是模型课 public partial class student1 { public int StudentId { get; set; } [Required] [StringLength(30)] public string Name { get; set; } public string Branch { get; set;

我试图对用户输入的手机号码进行验证,尽管为10位手机号码输入了正则表达式

这是模型课

 public partial class student1
    {
        public int StudentId { get; set; }
        [Required]
        [StringLength(30)]
        public string Name { get; set; }
        public string Branch { get; set; }
        [Display(Name = "Mobile Number:")]
       [Required(ErrorMessage = "Mobile Number is required.")]

        [RegularExpression("^([07][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | 8[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | 9[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])", ErrorMessage = "Invalid Mobile Number.")]
        public Nullable<int> Mobile { get; set; }
    }
当我运行它时,对于输入的手机号码小于10,它会显示我写的错误消息。但对于值10或更大的值,我得到了一条新消息

值“999999999”对于移动电话号码无效:


我不知道这个消息是从哪里来的。另外,为什么它不接受10位数的值呢?

试试正则表达式=^(\d{1,3}[-])?\d{10}$

对于c中的
int
,最大值是对于64位机器是

2147483647

它小于9999999999,所以它是int溢出,所以它是模型绑定之前控制器发出的模型验证错误消息

int
转换为
long

public Nullable<long> Mobile { get; set; }
public可空移动{get;set;}
还要检查正则表达式,它可能也会丢失一些有效数字

int
c的最大值#来源:


Pranav Singh关于C#中的int length是正确的,但请向我们解释一下你是如何得出这个正则表达式的,你希望手机号码的表达式是什么。为了给您提供更多帮助,请尝试解释您用来让我们了解您想法的每个符号。如果您希望保留前导的
0
,则不应将
int
(或任何数字类型)用作电话号码。除此之外,电话号码通常使用其他字符输入:
+
-
空格
。在我使用过的所有应用程序中,它都是字符串类型。@PeterB那么你的意思是在数据库中我应该将数据类型更改为varchar?@TasosMoustakas在我的国家,从7/8/9开始使用10位移动电话号码,就是这样。太棒了!!谢谢你,先生!:)我也需要更改数据库吗?我使用了数据库优先的方法
public Nullable<long> Mobile { get; set; }