正则表达式来验证以.edu结尾的电子邮件
我正在尝试在asp.net mvc中创建一个正则表达式验证属性,以验证输入的电子邮件是否具有.edu TLD。
我已经尝试过以下但表达式从不验证为真...
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+edu
和
w.w@{1,1}w[.w]?.edu
谁能提供一些见解?
这应该适合你:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.+-]+.edu$
自从你在RegEx表现出你很弱,
^
字符串的开始
[a-zA-Z0-9._%+-]+
一个或多个字母,数字,点,下划线,百分号,加号或破折号
@
@
[a-zA-Z0-9.+-]+
一个或多个字母,数字,圆点,加号或短划线
.edu
.edu
$
字符串结尾
如果您使用的是asp.net mvc验证属性,则您的正则表达式实际上必须使用javascript regex语法进行编码,而不是c#regex语法。 一些符号是相同的,但你必须对此感到厌倦。
你希望你的属性看起来像下面这样:
[RegularExpression(@"([0-9]|[a-z]|[A-Z])+@([0-9]|[a-z]|[A-Z])+.edu$", ErrorMessage = "text to display to user")]
你在字符串前加入@是为了生成一个字符串,因为我相信c#会在它传递给正则表达式之前应用自己的转义序列
(a | b | c)匹配'a'或'b'或'c'。 [az]匹配a和z之间的所有字符,大写字母和数字相似,([0-9] | [az] | [AZ])匹配任何字母数字字符
([0-9] | [az] | [AZ])+匹配1个或更多字母数字字符。 +在正则表达式中表示前面的1个或多个
@是电子邮件地址中的'@'符号。 如果它不起作用,你可能不得不逃脱它,但我不知道@正则表达式的任何特殊含义
让我们更简化它
[RegularExpression(@"w+@w+.edu$", ErrorMessage = "text to display to user")]
w代表任何包含下划线的字母数字字符
阅读https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions上的一些正则表达式文档以获取更多信息
尝试这个:
Regex regex = new Regex(@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+.(edu)$", RegexOptions.IgnoreCase);
答案已更新...
链接地址: http://www.djcxy.com/p/92875.html