我如何在离子项目中使用谷歌phonenumber lib

时间:2016-10-26 00:22:30

标签: angularjs node.js ionic-framework

我目前正致力于离子项目,我想将Google手机号码集成到我的项目中。这是GitHub url。我还找到了NPM存储库。

想要

  • 后端api会给我一个带有国家代码的电话号码。例如+6599091151
  • 在客户端(离子),我想检查用户联系人中的这个电话号码。因为电话联系内的电话号码可以以不同的形式变化。有时人们会提供国家代码,但有时却没有。

图书馆我发现哪个最适合我的情况是google phonenumber lib

问题

  • 我发现Google phonenumber lib有很多依赖项,我甚至无法运行演示应用程序。
  • 所以我发现了同一个库的NPM版本。但是nodejs库不能像普通的.js文件一样运行,而且我搜索了一下,我找到了能够使nodejs模块在angularjs代码中运行的browsify插件。

如果有一个简单的步骤可以让google-phonenumber lib轻松工作,请指出我或者至少告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

这是我在项目中所做的事情:

npm install --save google-libphonenumber

然后代码:

const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();


const isValidPhoneNumberAndCountryCode = function (phone, country_code) {
    const regionCode = phoneUtil.getRegionCodeForCountryCode(country_code);
    if (regionCode.toUpperCase() === "ZZ") {
        return false;
    }

    console.log("REGION CODE: ", regionCode);

    const phoneNumber = phoneUtil.parse(phone, regionCode);

    console.log("IS PHONE VALID: ", phoneUtil.isValidNumber(phoneNumber));
    console.log("PHONE NUMBER TYPE: ", phoneUtil.getNumberType(phoneNumber));

    // You can go through the library source to find what the codes are.
    // Allow only mobile and fixed_line_or_mobile to pass
    return phoneUtil.isValidNumber(phoneNumber) && (phoneUtil.getNumberType(phoneNumber) === 0 || phoneUtil.getNumberType(phoneNumber) === 1 || phoneUtil.getNumberType(phoneNumber) === 2);
};

这是我验证电话号码的方式。我希望有国家代码和电话号码。

注意:像萨摩亚这样的地方有4位数的国家代码。这是误导。国家/地区代码为1,您必须在电话号码前附加其他3位数字。