我需要实现一个允许a-z A-z 0-9
和一些特殊字符_ - . @ &
但应该限制
\ / " : ; * ? " < > { } [ ] ( ) | ! ' % ^
试过这种模式,但没有用。
[Required]
[Display(Name = "User name")]
[RegularExpression("^[-a-zA-Z0-9_-@]*", ErrorMessage = "Invalid characters!")]
public string UserName { get; set; }
你能建议吗?
答案 0 :(得分:2)
在正则表达式中,hyphen
在Character类中具有特殊含义,用于定义范围。它应该被转义或放在集合的开头或结尾。
尝试
[-\w.@&]
此处\w
匹配任何字词[a-zA-Z0-9_]
要验证整个字符串,请使用^
和$
分别匹配字符串的开头和结尾。
要避免空白字符串,请尝试+
而不是像*
^[-\w.@&]+$
答案 1 :(得分:1)
试试这个正则表达式:
/^[ A-Za-z0-9-.@&]*$/
<强> REGEX DEMO 强>
如果你想将连字符作为起始字符转义:
^(?!-)[A-Za-z0-9-.@&]*$
<强> REGEX DEMO 强>
如果你想从开始和结束两个方面限制它,那么试试这个:
^(?!-)[A-Za-z0-9-.@&]*+(?<!-)$
<强> REGEX DEMO 强>