我需要一個正則表達式(用於ASP .NET網站)來驗證電話號碼。它應該是靈活的,唯一的限制是:「通用」電話號碼的基本正則表達式
- 至少應爲9位數
- 沒有字母
- 可以包含空格,連字符,一個單一的(+)
我已經搜索過SO和Regexlib.com,但我得到更多限制的表達式,例如英國電話或美國等
我需要一個正則表達式(用於ASP .NET網站)來驗證電話號碼。它應該是靈活的,唯一的限制是:「通用」電話號碼的基本正則表達式
我已經搜索過SO和Regexlib.com,但我得到更多限制的表達式,例如英國電話或美國等
這是最好要求用戶填寫自己的國家,然後申請一個正則表達式該國。每個國家都有自己的電話號碼格式。
\+?[\d- ]{9,}
這將長期配合可選的數字開始加,然後至少九個字符用破折號和空格。
雖然這意味着破折號和空格計爲九個字符。 我會刪除破折號和空格,然後只用
\+?[\d]{9,}
^[0-9- +] + $
<asp:RegularExpressionValidator runat="server" id="rgfvphone" controltovalidate="[control id]" validationexpression="^[0-9-+ ]+$" errormessage="Please enter valid phone!" />
^\s*\+?\s*([0-9][\s-]*){9,}$
打破它:
^ # Start of the string
\s* # Ignore leading whitespace
\+? # An optional plus
\s* # followed by an optional space or multiple spaces
(
[0-9] # A digit
[\s-]* # followed by an optional space or dash or more than one of those
)
{9,} # That appears nine or more times
$ # End of the string
我更喜歡用後一種方式編寫正則表達式,因爲它在將來更易於閱讀和修改;大多數語言都需要設置一個標誌,例如在C#中使用RegexOptions.IgnorePatternWhitespace
。
請注意,這是一個非常鬆懈的方法;它會接受像'+ - 1 --- 2345 - - - 678 9 - '這樣的數字,並且只會檢查是否至少有9位數字,並且只在開始時出現加號。我認爲這就是你想要的。 – configurator 2011-06-13 13:51:06
@"^(?:\+?1[-. ]?)?\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"
這是我使用的。這將處理大多數情況下的通用電話號碼驗證。
這是一個超級通用的,只允許您在給定的電話號碼,包括#的字符。它忽略任何格式模式。
@"^([\(\)\+0-9\s\-\#]+)$"
沒錯,沒有標準,所以很難提供一個全面匹配的正則表達式,而不會使其泛型化,無法防止無效條目。 – GalacticCowboy 2011-06-13 12:40:48
我想要一個靈活的格式。這裏(SA)沒有嚴格的電話格式(例如0711231234,07111231234,071-123-1234,(071)1231234是可接受的)。我想蒙面編輯框是最好的前進方向。 – robasta 2011-06-13 13:07:20
在這種情況下,我想一個正則表達式可以接受10位數字並過濾出(,)和空格符。 – 2011-06-14 10:08:03