2

我正在构建一个MVC 4 Web 应用程序并在验证我的一些 ViewModel 时使用Fluent Validation 。

我需要验证电子邮件地址,并且我正在使用这个正则表达式,它是在 Visual Studio 中创建默认 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");

但是,我的客户告诉我,这不接受在 @ 符号前包含撇号的电子邮件地址。

我根本不擅长正则表达式,所以有人可以帮我修改这个 reg 表达式以允许在 @ 符号之前使用撇号吗?

提前致谢。

更新

我输入了错误的代码示例,请现在查看正则表达式 - 这是不接受撇号的表达式。

4

1 回答 1

6

更新后,您正在寻找的正则表达式是:

^[\w-']+(\.[\w-']+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$

请注意,这里唯一改变的是'(撇号)字符已添加到@符号之前的两个字符类中的每一个中。

于 2013-04-17T15:50:54.490 回答