电话 
电话号码是什么?
这是电话包的叉子.
phonenumber 用于正常移动和 陆线电话 数字改为E.164格式.
一个常见的问题是,用户通常以这种方式输入电话号码:
`(817) 569-8900` or
`817569-8900` or
`1(817) 569-8900` or
`+1(817) 569-8900` or ...
我们总是希望:
+18175698900
安装
npm install phone
或者说
yarn add phone
演示
从 phone 在密码箱里试试看
使用量
const phone = require('phonenumbers');
phone('+852 6569-8900'); // return ['+85265698900', 'HKG']
phone('+1(817) 569-8900', ''); // return ['+18175698900', 'USA']
phone('(817) 569-8900', 'USA'); // return ['+18175698900', 'USA']
phone('(817) 569-8900', 'HKG'); // return []
phone('+1(817) 569-8900', 'HKG'); // return [], as it is not a valid HKG mobile phone number
phone('6123-6123', 'HKG'); // return ['+85261236123', 'HKG']
如果不提供国家代码和国家电话前缀,默认将被视为美国或加拿大
phone('(817) 569-8900'); // return ['+18175698900, 'USA']
phone('(817) 569-8900', ''); // return ['+18175698900, 'USA']
phone('(817) 569-8900', ''); // return ['+18175698900', 'USA']
phone('780-569-8900', ''); // return ['+17805698900, 'CAN'], 780 is a Canada phone prefix
phone('6123-6123', ''); // return [], as default country is USA / CAN and it does not match any result
如果您想要跳过电话号码初始数字检查, 请设定 allowLandline 改为正 :
phone('+(852) 2356-4902', '', true);
初始数字检查将被完全禁用, 即使你输入一个电话号码开始 一个无性别化的数字:
phone('+(852) 0356-4902', '', true); // return [ '+85203564902', 'HKG' ], even the phone number start with `0` is not a valid landline phone number
API 密码
const phone = require('phonenumbers');
phone(phone: String, [country: string, allowLandline: Boolean]): Array
投入
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 电话 | 字符串 | 对 | 您想要处理的电话号码文本 |
| 国家 | 字符串 | 没有 | 以等值-3166 α 2 或 3 格式提供国家代码 |
| 允许行线 | 布尔 | 没有 | 如果您想要跳过电话号码初始数字检查, 则设定为真 |
回返
归来总是个阵列
| 阵列索引 | 类型 | 说明 |
|---|---|---|
| 0 个 | 字符串 | E.164格式的正常电话号码 |
| 1个 | 字符串 | 检测到的以等值-3166 α 3 为格式的电话号码国家代码 |
如果由于任何原因(如无法与任何国家相匹配)无法重排电话号码,结果将是空数组.
出于一些历史原因,函数响应采用矩阵格式,预计在下个大版本起伏时会被更新为合适的对象响应. (不会更改 2.x 版本)
测试
yarn test
构建
yarn build
旧浏览器支持( B)
目前我们转接脚本,用于针对浏览器全球使用率为 >1%的目标环境,以及Node.js 6.10+.
您可以检查浏览器使用统计 浏览器列表。 。 。 .
您可能需要一些更老的浏览器的多填充; 更多细节请阅读 example/README 文档.
财务问题
-
对
phonenumber有逻辑验证吗?对 如果您提供了第2个参数( 国家), 且电话号码不以
+签名.phonenumber将验证mobile_number_lengths财务报告和审定财务报表mobile_begin_with -
为什么
phonenumber要返回无效的电话号码吗 ?默认情况下,该功能将只验证一个手机号码,以验证一个地上电话号码,请设置第3个参数
allowLandline真实的.如果你发现结果仍然不正确,请提交一张票来改进我们的验证规则.
-
怎么样
allowLandline工作吗?手机号码检测是通过比较一个电话号码的起始数字和一个国家可能移动前缀列表来实现的. 在一些国家,移动电话和地线的部分或全部前缀相同
allowLandline设置为false您不应假设所有可能的地上电话号码都会被可靠地过滤出.
帮助
我们试图确保这个套案能处理尽可能多的案件, 如果你注意到我们对一个国家或其他案件有错误的规则, 请打开一个问题让我们知道.
为创建关于添加或修改电话号码格式的新拉取请求,请提供PDF,网站等参考信息. 非常感谢.
许可证
本项目根据以下规定获得许可证: 麻省理工学院许可证。 。 。 .