我試圖解決一個問題,我發現最好的解決方案是使用正則表達式。Regex電話號碼
我沒有先進的正則表達知識,所以我真的需要你的幫助。
的問題是,我需要確定一個字符串是否是電話號碼或手機,我們在巴西在這裏使用的方式,像這樣:
的電話號碼可能是這種格式:
0 + XX + XXXXXXXX = 01121234567
或者
XX + XXXXXXXX = 1121234567
或者
XXXXXXXX = 21234567
在這種情況下它的電話號碼,所以它需要先從2,3,4或5
而且如果它的手機具有9位數字並且必須以9開頭,排他性和第二位數字必須是6,7或8:
0 + XX + 9XXXXXXXX = 011961234567
或者
XX + 9XXXXXXXX = 11971234567
或者
9XXXXXXXX = 981234567
所以,如果我得到字符串「011984160986」,「11984160986」或「984160986」,例如,我需要能夠識別它的手機,並且相同的電話號碼。
在同一時間,我必須能夠檢查字符串「84160289」它不是一個有效的電話號碼。
任何人都可以用這個正則表達式來解決這個問題嗎?
我不喜歡在我的代碼中使用大量的「ifs」來驗證這一點。
謝謝。
你說「第二位必須是6,7或8」,但在手機的例子中,他們不這樣做。 – horcrux
我的不好,這是錯誤的 –
*「我試圖解決一個問題,我發現最好的解決方案是使用正則表達式。」* [現在你有兩個問題](https://en.wikiquote.org/wiki/Jamie_Zawinski#歸因於) –