当libphonenumber无效时,使用asYouType获得真实的有效号码

时间:2019-06-08 10:32:07

标签: javascript reactjs libphonenumber

我正在使用libphonenumber来格式化和验证电话号码(在我的情况下为黎巴嫩号码)。

黎巴嫩电话号码的有效掩码为+961 xx xxx xxx 在他们的演示中给出的示例中,这实际上运行良好  Here

因此对于黎巴嫩,国家代码为LB,有效模板为xx xxx xxx

例如,当输入为+961 71 123 123 ==>电话号码实际上为valid+961 71 123 12不是

在我的反应中,输入数字一旦到达2时就应该到达71 123 12,一旦到达3就有效了

import { AsYouType } from 'libphonenumber-js'

let asYouType = new AsYouType()

asYouType.defaultCountry = 'LB';
asYouType.reset();

asYouType.input('7112312')

// <<< PROBLEM HERE >>>
console.log('number is valid ',asYouType.getNumber().isValid()); 
//output: is valid when it should not be valid 71 123 12 (missing     one number)


asYouType.defaultCountry = 'LB';
asYouType.reset();
asYouType.input('711231') 
console.log('number is valid ',asYouType.getNumber().isValid()); 
// out : false (OK)

asYouType.defaultCountry = 'LB';
asYouType.reset();
asYouType.input('71123123') 
console.log('number is valid ',asYouType.getNumber().isValid()); 
// out: true (OK)

1 个答案:

答案 0 :(得分:0)

libphonenumber-js 默认情况下使用简化的元数据集,以减小程序包的大小。您看到的可能是这种简化的结果。

如果要使用完整的元数据集,请在导入库时使用后缀 /max

import { AsYouType } from 'libphonenumber-js/max'

检查documentation以获得有关提供的元数据集的更多信息。