javascript - 使用 .split 函数拆分电话号码
问题描述
我有一个从 api 返回的电话号码值,我试图将其值分成三个部分。但是电话号码的格式让人难以理解如何应用 .split 函数,这样返回的号码是这样的(AAA) BBB-CCCC
。我无法隔离的值是我有这个工作的第一个数字的中间三个数字
phone.split(" ")[0] //returns AAA
phone.split("-")[1] // returns CCCC
但是我不能破解中间数字我不应该使用 .split 作为中间值吗?
解决方案
您可以使用带有String.match()的简单正则表达式
var phoneNrParts = '(AAA) BBB-CCCC'.match(/\((.*)\) (.*)-(.*)/);
console.log('part 1: ', phoneNrParts[1]);
console.log('part 2: ', phoneNrParts[2]);
console.log('part 3: ', phoneNrParts[3]);
或者您可以使用String.split()与上面相同的正则表达式,但如评论中所述,在这种情况下匹配更好
var phoneNrParts = '(AAA) BBB-CCCC'.split(/\((.*)\) (.*)-(.*)/);
console.log('part 1: ', phoneNrParts[1]);
console.log('part 2: ', phoneNrParts[2]);
console.log('part 3: ', phoneNrParts[3]);
在此处了解有关正则表达式的更多信息:https ://regex101.com/r/No8at8/1
推荐阅读
- python - 在 Python 中解析 XML,无需手动调用属性、标签和子编号
- python - 来自两个系列、不同长度和索引的笛卡尔积
- android - 如何将 Genymotion 与 Socks5 代理一起使用
- ffmpeg - AVFrame:如何获取/替换平面数据缓冲区和大小?
- javascript - 如何在ajax调用中传递具有列表类型属性的对象
- java - 处理程序启用的访问上下文
- netsuite - 转移单转换时的 NetSuite 库存详细信息错误
- windows-server-2012-r2 - SFTP 或 NFS 与 Linux 服务器共享文件?(Windows 服务器 2012 R2)
- omnet++ - OMNET++:INET 4.0 如何在app层获取信标帧信号功率?
- javascript - Javascript:用常规文件替换最小文件