DataAnnotations 验证将“@”添加到 RegularExpression
DataAnnotations validation adding `@` to RegularExpression
如何添加 accept @
以及下面的 RegularExpression?
[StringLength(250)]
[RegularExpression(@"[A-Za-z0-9][A-Za-z0-9\-\.]*|^$",
ErrorMessage = "DomainName may only contain letters (a-z), digits (0-9), hypens (-) and dots (.), and must start with a letter or digit")]
public string DomainName{ get; set; }
使用
^([A-Za-z0-9][A-Za-z0-9@.-]*)?$
这是正则表达式分解:
^
- 字符串开头
([A-Za-z0-9][A-Za-z0-9@.-]*)?
- 1 或 0(由于 ?
贪婪量词)出现...
[A-Za-z0-9]
- 一个 ASCII 字母后跟...
[A-Za-z0-9@.-]*
- 0 个或多个 ASCII 字母或数字或文字 @
/.
/-
符号的字符。
$
字符串结尾。
所以,要点是:
- 将
@
添加到第二个字符 class
- 将整个表达式变成一个可选组
(...)?
(它也可以是一个非捕获组,顺便说一句:(?:...)?
)
- 从字符 class 中删除不必要的转义符号(如果
-
位于字符 class 的 start/end 处,或者在有效范围之后的正则表达式中,它不需要转义)。
如何添加 accept @
以及下面的 RegularExpression?
[StringLength(250)]
[RegularExpression(@"[A-Za-z0-9][A-Za-z0-9\-\.]*|^$",
ErrorMessage = "DomainName may only contain letters (a-z), digits (0-9), hypens (-) and dots (.), and must start with a letter or digit")]
public string DomainName{ get; set; }
使用
^([A-Za-z0-9][A-Za-z0-9@.-]*)?$
这是正则表达式分解:
^
- 字符串开头([A-Za-z0-9][A-Za-z0-9@.-]*)?
- 1 或 0(由于?
贪婪量词)出现...[A-Za-z0-9]
- 一个 ASCII 字母后跟...[A-Za-z0-9@.-]*
- 0 个或多个 ASCII 字母或数字或文字@
/.
/-
符号的字符。
$
字符串结尾。
所以,要点是:
- 将
@
添加到第二个字符 class - 将整个表达式变成一个可选组
(...)?
(它也可以是一个非捕获组,顺便说一句:(?:...)?
) - 从字符 class 中删除不必要的转义符号(如果
-
位于字符 class 的 start/end 处,或者在有效范围之后的正则表达式中,它不需要转义)。