【问题标题】:How do i validate my phonumber to start with a 0我如何验证我的电话号码以 0 开头
【发布时间】:2015-05-26 09:32:54
【问题描述】:

我一直在尝试使用 mvc 中的数据注释创建自定义验证。 我需要验证用户是否在视图的文本框中输入了以 0 开头的电话号码,如果不是他们收到错误。不知何故我的逻辑是错误的 我是编码新手,有一点困难请帮忙。

这是我的代码

     public class FirstNumberAttributes:ValidationAttribute
   {

    public FirstNumberAttributes(int firstdigit)
    {
        _firstdigit = firstdigit;
    }

    protected override ValidationResult isValid(objectvalue,ValidationContext validationContext)           
    {
        if (value!=null)
        {

            var valueAsString = value.ToString();
            if (valueAsString.Substring(0,1)!=_firstdigit)
            {
                return new ValidationResult("Number doesnt start with "+_firstdigit);
            }
         }
        return ValidationResult.Success;
    }
    private readonly int _firstdigit;
}

}

【问题讨论】:

  • 试试:if (valueAsString.Substring(0,1)!=_firstdigit.ToString())
  • 或者你可以使用正则表达式来验证你的电话号码,因为我可以输入一个 0 作为第一个数字,然后把它全部搞砸,确保电话号码中也没有字母
  • 使用正则表达式验证您的电话号码..
  • MVC 已经为此提供了一个内置的验证属性 - RegularExpressionAttribute。没有理由重新发明轮子。

标签: c# asp.net-mvc-5 data-annotations


【解决方案1】:

我通常使用正则表达式来验证电话号码。只需使用你喜欢的模式来过滤它。

String pattern = "[" + _firstNumber + "*]"; 
if(Regex.IsMatch("01234567", pattern)){
    return ValidationResult.Success;
}else{
    return new ValidationResult("Number doesnt start with "+_firstNumber);
}

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多