首先,我想检查输入是否为null而不显示错误,以及输入是否具有数字值也显示错误。...那么这是什么模式呢?希望您能理解我的问题,谢谢!
[RegularExpression(@"^[\D]$", ErrorMessage = "Input Cannot be empty and must have Alphabets only")]
public string FirstName { get; set; }
答案 0 :(得分:1)
^\d*$
将匹配任何为空或仅由数字组成的输入值。另外,\D
将匹配具有至少一个非数字字符的任何输入值。例如,在Javascript中:
console.log(/^\d*$/.test(''));
console.log(/^\d*$/.test('123'));
console.log(/^\d*$/.test('x1'));
console.log(/\D/.test(''));
console.log(/\D/.test('123'));
console.log(/\D/.test('x1'));
答案 1 :(得分:1)
您的解决方案对您不起作用,因为^[\D]$
模式与仅包含单个字符而不是数字的字符串匹配。请注意,[
和]
可以安全地删除,因为字符类仅在它们具有多个char / char范围时才有意义。
我建议
[RegularExpression(@"^\D+$", ErrorMessage = "Input can have no digits.")]
public string FirstName { get; set; }
@"^\D+$"
模式仅匹配其中没有数字的字符串。请注意,RegularExpressionAttribute
模式应始终与整个输入匹配,因此^
和$
锚点可在此处很好地使用。
答案 2 :(得分:1)
[Required(ErrorMessage = "{0} cannot be empty")]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "{0} must have Alphabets only")]
[Display(Name = "First name")]
public string FirstName { get; set; }
如果输入为空的错误消息:
名字不能为空
并且如果输入值包含非字母字符:
名字只能有字母
如果要允许为空值,可以尝试:
[RegularExpression(@"(^$)|(^[a-zA-Z]+$)", ErrorMessage = "{0} must have Alphabets only")]
(^$)
允许使用空字符串。然后,如果不为空,则继续检查模式(^[a-zA-Z]+$)
(仅字母字符)。