2009-02-01 160 views
13

This question要求在Java中的電話號碼格式API讓我想知道爲什麼這樣的API似乎不存在。鑑於在Apache Commons下提供的validation類的數量,我會認爲將包括這樣的API。電話號碼格式和驗證庫

我的問題是,有沒有人知道任何語言可用作小型Java開源項目模型的電話號碼格式/驗證庫嗎?此外,除了世界各地使用的大量不同的電話號碼格式之外,是否有人知道這樣一個項目不可行的任何原因?

回答

13

任何語言的這樣的API:Number::Phone(示例子模塊:Number::Phone::US)。

數據:ITU的National Numbering Plans索引。

+4

廢話,有很多國家的。 :) – 2009-02-02 16:12:16

+0

感謝國際電聯的鏈接,即使卡塔爾的數據是最新的(這是罕見的)。 – 2009-02-08 15:18:30

0

就像在其他問題的答案中所說的那樣,沒有人看到過任何Java,就像你說的那樣,由於世界各地的電話號碼格式不同,這幾乎是不可能的。

如果您知道您定位區域的不同格式,那麼在正則表達式中實現它通常很容易。

3

http://www.geonames.org/他們有一個數據庫,它屬於在這個國家的數據庫中所包含的電話號碼可以免費下載。

http://download.geonames.org/export/dump/

尋找 'countryInfo.txt' 文件。

我建議你在此基礎上構建自己的驗證器。

+2

Wooops ...對不起,RegEx是郵政編碼。它即使是國家的電話前綴也是。 +45丹麥 – Phliplip 2010-06-02 21:06:34

23

谷歌最近發佈了libphonenumber解析,格式化,存儲和驗證國際電話號碼。

-1

電話輸入字段:

<input class="left" id="field" name="field" /> 

jQuery腳本:

jQuery.validator.addMethod( 「phoneUS」,功能(PHONE_NUMBER,元件){ PHONE_NUMBER = phone_number.replace(/\ s +/g,「」); return this.optional(element)|| phone_number.length> 9 & & phone_number.match(/ ^(1 - ?)?(([2-9] \ d { 2})| [2-9] \ d {2}) - [2-9] \ d {2} - \ d {4} $ /)?; },「請指定一個有效的電話號碼」);

0

你可以看看這裏Parsify格式 - https://www.mashape.com/parsify/format#endpoint-Phone-Number

它將多種格式如回你的電話號碼

{ 「E164」: 「1234567890」, 「國家」: 「234567890」, 「國際化」: 「+1 234567890」, 「有效」:假的, 「類型」: 「未知」 }

你可以得到更廣泛的響應,如果它是一個真正的數字