2012-03-08 76 views
1

我正在嘗試使用Google的libphonenumber的JavaScript版本驗證手機號碼。我首先檢查號碼是否有效,然後如果它有效,我檢查它的類型是否是移動的。我面臨的問題是,如果美國手機號碼被選中,它將作爲一個有效的而不是手機號碼。所以我得到的反饋是這個號碼是一個合法的美國號碼,但不是美國的手機號碼。我知道他們無法區分兩者,但在這種情況下,反饋不應該是'不能說'而是'否'。檢查號碼是否爲移動或具有相同格式的國家的固定電話號碼

我想將它發佈爲一個問題,但後來我認爲我應該確認我是對的,我可能會錯過一些東西。所以有人可以證實這一點,或只是指導我,如果我做錯了什麼。

+3

我同意,答案應該是「不能說」,但也許這不是圖書館的選擇。請注意,美國的電話號碼可以從移動網絡移植到固定電話,反之亦然,因此今天的移動電話號碼可能是明天的固定電話。 – 2012-03-08 10:23:42

+0

好thnx很多隊友:) – khizar 2012-03-08 10:37:11

回答

1

我知道它晚了,但如果有人在後面提到這個問題,那是我的錯。如果他們無法確定其固定電話號碼或手機號碼,他們的狀態爲PNT.FIXED_LINE_OR_MOBILE。

1

這是一個棘手的話題。如果你認真對待這個區別,你必須訂閱定期更新的國際電話號碼數據庫,例如this one(不是附屬的,關聯的或任何其他的,只是碰巧認識他們)。有了它,你就可以將一個數字(-prefix)與一個載體關聯起來,這個載體令人驚訝地比你期望的更加多樣,複雜和不斷變化。

這就是爲什麼libphonenumber不能給出100%準確結果的原因。我不知道它是否可以肯定地返回「不知道」。

+0

瞭解它,所以意味着我應該只是把一個功能請求,如果他們認爲它的任何好的泰國可以提供它:) – khizar 2012-03-08 10:39:30

+1

是的,這是值得一試。雖然我不確定這是完全可能的,但即使每天最好的付費數據庫編譯爲libphonenumber,你仍然可能會有不準確的情況。您必須在應用程序中處理這種不準確的方式。 – deceze 2012-03-08 10:51:10