发布网友
共1个回答
热心网友
为了验证该电子邮件地址是有效的,该方法调用 Regex.IsMatch(String, String) 方法来验证此地址符合正则表达式模式。您可以使用 IsValidEmail,在应用程序将地址存储在数据库中或显示在 ASP.NET 页中之前,筛选出包含无效字符的电子邮件地址。请注意,IsValidEmail 方法不执行身份验证来验证电子邮件地址。它只确定其格式对于电子邮件地址是否有效。C#VBImports System.Text.RegularExpressions Mole RegexUtilities Function IsValidEmail(ByVal strIn AsString) AsBoolean' Return true if strIn is in valid e-mail format.Return Regex.IsMatch(strIn, _ "^(?("")(""[^""]+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" + _ "(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$") EndFunctionEndMole在本例中,正则表达式模式 ^(?("")(""[^""]+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$ 可以按下表中的方式解释。模式描述^在字符串的开头部分开始匹配。(?("")确定第一个字符是否为引号。(?("") 为替换构造的开头。((?("")(""[^""]+?""@)如果第一个字符是引号,则匹配一个开始引号,后跟至少一个任意字符而不是引号,再后跟一个结束引号。此字符串应以一个 at 符号 (@) 结尾。|(([0-9a-zA-Z]如果第一个字符不是引号,则匹配从 a 到 z 的任意字母字符或从 0 到 9 的任意数字字符。(\.(?! \.)) 如果下一个字符是句点,则与之匹配。如果下一个字符不为句点,则看下一个字符并继续进行匹配。(?!\.) 是宽度为零的负预测先行断言,可防止两个连续句号出现在电子邮件地址的本地部分中。|[-!#\$%&'\*\+/=\? \^`\{\}\|~\w] 如果下一个字符不是句点,则匹配任意字类字符或以下字符之一:-!#$%'*+=?^`{}|~。((\.(?! \.))|[-!#\$%'\*\+/=\? \^`\{\}\|~\w])* 零次或多次匹配替换模式(一个句点后跟一个非句点,或者一系列字符之一)。@匹配@ 字符。(?<=[0-9a-zA-Z])如果@ 字符之前的字符为从 A 到 Z、从 a 到 z 或从 0 到 9 的字符,则继续进行匹配。(?<=[0-9a-zA-Z]) 构造定义零宽度正回顾断言。(?(\[)检查@ 之后的字符是一个左方括号。(\[(\d{1,3}\.){3}\d{1,3}\])如果它是左方括号,则匹配左方括号后跟一个 IP 地址(四组一到三位,每组由句点分隔)和一个右方括号。|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6})如果@ 后面的字符不是左方括号,则匹配一个值为 A-Z、a-z 或 0-9 的字母数字字符,后跟零个或多个字类字符或一个连字符,接着是一个值为 A-Z、a-z 或 0-9 的字母数字字符,再后跟一个句点。此模式可以重复一次或多次,且应后跟两个到六个字母(a-z、A-Z)字符。正则表达式的这一部分用于捕获域名。