使用libPhoneNumber格式化电话号码

时间:2017-09-25 14:34:38

标签: javascript angularjs libphonenumber

我在angular js应用程序中使用libPhone库来验证电话号码是否有效。但是,我必须显示用户在输入的电话号码无效时必须提供的有效格式。

用户将提供国家/地区代码和电话号码。例如,如果用户需要提供美国号码,则向用户显示的格式为:xxx-xxx-xxxx

我试图通过使用一种解决方法来做到这一点,通过调用getPhoneFormat('mx')来说明墨西哥号码

  var getPhoneFormat = function(countryCode) {
         var exampleNum = phoneUtil.getExampleNumberForType(countryCode, libphonenumber.PhoneNumberType.MOBILE);
         var formattedNum =  phoneUtil.format(exampleNum, libphonenumber.PhoneNumberFormat.RFC3966);
         //formattedNum -> tel:+52-1-222-123-4567

         //then i was thinking of removing the prefix by checking the position of the 1st '-'
          var removeFromIndex =  formattedNum.indexOf('-') + 1
          var validFormat =  formattedNum.substring(removeFromIndex);
          //valid format is ->   1-222-123-4567

          //finally replace numbers with x and return
     }

库是否提供了一些方法来满足相同的要求?我看到formatByPattern但不确定如何使用它。

1 个答案:

答案 0 :(得分:0)

你试过这个较小的版本吗?它有一个解析和一个合成。

即。

parse('8 (800) 555 35 35', 'RU')
// { country: 'RU', phone: '8005553535' }

format('2133734253', 'US', 'International')
// '+1 213 373 4253'

在您的情况下,您可能想要使用

“国家”代替国际

https://github.com/catamphetamine/libphonenumber-js