2013-05-25 230 views
3

你好,我有一個電話號碼,它的E164 format+212640588740,我想將它轉換爲它的international format+212 640-588740。 有這個庫http://code.google.com/p/libphonenumber/很好地做這種轉換,但它需要一個電話號碼和一個國家代碼巫婆我無法提供,因爲我正在閱讀手機從數據庫轉換。Javascript將電話號碼從E164轉換爲國際格式

基本上我想有一個腳本或庫,採取E164作爲參數,並把它變成它的國際標準格式,如下所示:

+212640588740 => +212 640-588740 
+33336578668 => +33 3 36 57 86 68 
+17877491410 => +1 787-749-1410 

任何想法,歡迎,謝謝你提前。

+2

你爲什麼要標記這個jQuery?你使用jQuery並不介意使用jQuery的解決方案嗎? – tgkprog

+3

如果您不知道國家代碼,如何將電話號碼轉換爲國際格式?任何不使用國家或地區代碼的解決方案都會提前或稍後出現問題。基本上,您應該在數據庫中添加一個字段來爲每個數字指定國家/地區代碼。 –

+1

你不能從你的電話號碼中提取國家代碼嗎?你需要一些包含所有國家代碼的數據庫,然後把你的電話號碼的第一個數字與數據庫中的一個代碼相匹配。 – basilikum

回答

2

如果所有輸入格式E164,您可以使用com.google.i18n.phonenumbers.PhoneNumberUtil.parse()方法您的字符串轉換爲PhoneNumber例如這反過來又可以使用com.google.i18n.phonenumbers.PhoneNumberUtil.format()將其轉換爲格式化爲國際字符串。

你不需要知道國家代碼(或解析它)事前,看到parse()方法的PARAMS文件:

defaultRegion - ...如果該號碼是保證先從'+'後跟國家代碼,然後可以提供「ZZ」或null。

這裏有一個簡單的例子:

PhoneNumber number = com.google.i18n.phonenumbers.PhoneNumberUtil.parse("+12781112222", null); 
String result = com.google.i18n.phonenumbers.PhoneNumberUtil.format(number, com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL); 

對於使用看文檔:

com.google.i18n.phonenumbers.PhoneNumberUtil.parse() com.google.i18n.phonenumbers.PhoneNumberUtil.format()