我想寫一個正則表達式,它允許驗證一個電話號碼,可以寫成如下:237 698888888或+237 658888888或67883888 ...,實際上電話號碼必須符合以下條件(+237 | 237)'Space'(6 | 2)(5 | 8 | 2 | 3 | 9 | 7 | 6)[0-9] {7}在Java中的正則表達式在驗證電話號碼不起作用
如果用戶有意輸入一個帶有前綴的號碼,前綴必須是237或+237,否則他決定輸入一個沒有前綴的號碼,在這種情況下,他必須輸入一個9位數的數字,第一位必須是6或2,第二位數字必須在2,3,5,6,7,8和9之間;剩下的7位數字即[0-9] {7}。這裏是我的Java代碼:
String regex = "(\\+237|237)\" \"(6|2)(2|3|[5-9])[0-9]{7}";
String sPhoneNumber = "237 278889999";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sPhoneNumber);
if (matcher.matches()) {
Log.e("|==FILTER_NUM==>>","Phone Number Valid");
}
else
{
Log.e("|==FILTER_NUM==>>","Phone Number must be in the form XXX XXXXXXXX");
}
返回此
E/| == FILTER_NUM == >>:電話號碼必須在形式XXX XXXXXXXX
請檢查我的代碼,並告訴我,什麼是錯的
原諒我的英語:)
那麼問題是什麼?您的正則表達式以您不希望的方式工作,或者您的日誌消息以E /開頭。 –
您是否嘗試從任何在線正則表達式構建器或睾丸驗證您的正則表達式? – Anas
什麼失敗?你能否提供一些應該被視爲有效的電話號碼的例子,但不是嗎? – markusk