RegularExpressionValidator控件不允许使用带有法语字符的电子邮件。例如:é

时间:2012-08-29 14:51:48

标签: c# .net regex visual-studio validation

我们与许多法国客户打交道,这是我们注册表单上的一个问题。

如何告诉控件允许使用法语字符?

最终,正则表达式是Microsoft提供的默认值:

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

4 个答案:

答案 0 :(得分:1)

基本上,无论是否有重音,正则表达式的结果都不应该有所不同。 (参见Regex accent insensitive?

但除此之外 - 我不知道,这些口音在电子邮件中有效。

答案 1 :(得分:1)

即使我无法使Microsoft提供的正则表达式工作,如果\ _仍然不匹配特殊字符èéà,您可以用{{1}替换任何\w实例使这个正则表达式接受任何单词文字以及你提供的任何特殊字符(可能省略域名部分中的那些特殊字符,我想你永远不会找到some@test.còm)

也许它不在答案范围内,但您是否需要花一些时间来查看this问题的答案以获得有关电子邮件验证的一些想法?

答案 2 :(得分:0)

试试这个:

ValidationExpression="\w*[\éèà]+([-+.']\w+)*@\w*[\éèà]+([-.]\w+)*\.\w+([-.]\w+)*" />

[\éèà]是你的特殊字符'列表'。 您还可以添加/ i([\éèà] / i)以忽略区分大小写。

但我建议在后端验证电子邮件:

public bool IsValidEmail(string email)
{
     bool isValidEmail = false;
     try
     {
         var validEmail = new MailAddress(email);
         isValidEmail = true;
     {
     catch (FormatException ex)
     {
         // The email has not a good format
     }
}

答案 3 :(得分:0)

尝试上述方法以多种方式处理法语电子邮件,但所有这些方法都不适合我,我发现一种解决方案适合我。

ValidationExpression="[À-ÿ\w]+([-+.'][À-ÿ\w]+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"