我在asp.net mvc应用程序中工作,这是在mvc 1中完成的...所以验证是在nerd dinner 1.0 tutorial
之后完成的我刚刚定义了这样的规则
public bool Is_CellPhone(string val)
{
Regex celular = new Regex("^04[12][246][0-9]{7}$");
return celular.IsMatch(val);
}
在我的GetRuleValidations中我这样做
if (!Is_CellPhone(Celular))
yield return new RuleViolation("El celular no cumple el formato",
"Celular");
问题是..手机不是必需的,所以当用户不提交该值时,验证方法仍会运行并因空字符串而返回错误...我该怎么做才能正确防止此错误?
答案 0 :(得分:1)
如果字符串为null或为空,则返回true:
public bool Is_CellPhone(string val)
{
if (string.IsNullOrEmpty(val)) { return true; }
Regex celular = new Regex("^04[12][246][0-9]{7}$");
return celular.IsMatch(val);
}
我怀疑你也可以用正则表达式来掩盖这一点,但我吮吸正则表达式所以我不会假装在那里给出建议。