在我們的專案中,我們使用這個正則運算式來驗證電子郵件:
"^([\w-\.] )@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-] \.) ))([a-zA-Z]{2,7}|[0-9]{1,3})(\]?)$"
但它允許非英文字符。
例如:
“userName@????.com”
是有效的電子郵件。
如何在此運算式中添加另一條規則以將輸入限制為僅英文字母?
uj5u.com熱心網友回復:
可以這樣做
string[] StrInputNumber = { "[email protected]", "[email protected]'", "[email protected]", "userName@????.com" };
Regex ASCIILettersOnly = new Regex(@"^[\P{L}A-Za-z]*$");
foreach (String item in StrInputNumber) {
if (ASCIILettersOnly.IsMatch(item)) {
Console.WriteLine(item " ==> valid");
}
else {
Console.WriteLine(item " ==>not valid");
}
}
輸出

有關正則運算式的一些基本解釋,請單擊此處
uj5u.com熱心網友回復:
您可以省略|模式中的交替,并且有一個可選的右括號\]?,我認為您不需要在電子郵件地址中使用。
使用 Javascript 和 C# 的正則運算式中的這一部分[\w-\.]似乎不是字符中的有效范圍。
\w您可以[A-Za-z0-9]在 C# 中使用匹配 ASCII 字符和數字 0-9而不是使用。
如果您不想匹配連續的點或連字符,您可以使用這樣的模式,然后在您有更多想要允許的字符時擴展它:
^[A-Za-z0-9] (?:[.-][A-Za-z0-9] )*@[A-Za-z0-9] (?:[.-][A-Za-z0-9] )*\.[a-z]{2,}$
正則運算式演示
請注意,這只會驗證這種格式的電子郵件地址。
uj5u.com熱心網友回復:
您可以使用此網站來測驗您的正則運算式
如果您不需要保留當前的運算式,則可以改用這個運算式:
^[A-Z0-9._% -] @[A-Z0-9.-] \.[A-Z]{2,4}$.
我用您的示例對其進行了測驗,它可以按您的意愿作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536908.html
