我正在构建一个 MVC 4 Web应用程序,并在验证我的一些ViewModel时使用 Fluent验证。
我需要验证电子邮件地址,而我使用的是正则表达式,它是在VisualM中创建默认MVC应用程序时在AccountModels类中的默认值工作室
RuleFor(x => x.ConfirmEmail)
.Matches(@"^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$")
.WithMessage("Please enter a valid email address");
但是,我的客户告诉我,这不接受包含@符号前撇号的电子邮件地址。
我对正则表达式一点都不好,所以有人可以帮我修改这个表达式,以便在@符号之前允许撇号吗?
提前致谢。
更新
我输入了错误的代码示例,请立即查看正则表达式 - 这是不接受撇号的内容。
答案 0 :(得分:4)
更新后,您要查找的正则表达式为:
^[\w-']+(\.[\w-']+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$
注意,这里唯一改变的是,在'
符号之前的两个字符类中的每一个中都添加了@
(撇号)字符。