I have a list of phone numbers which are formatted in multiple ways such as: (212)-555-1234
or 212-555-1234
or 2125551234
.
Using JavaScript, what would be the best way to extract only the area code out of these strings?
I have a list of phone numbers which are formatted in multiple ways such as: (212)-555-1234
or 212-555-1234
or 2125551234
.
Using JavaScript, what would be the best way to extract only the area code out of these strings?
首先,删除所有不是数字的内容以获得纯数字。然后,通过切片获取前三位:
return myString.replace(/\D/g,'').substr(0, 3);
获取前 3 个连续数字...
/[0-9]{3}/.exec("(212)-555-1234")[0]
样本(小提琴):
console.log(/[0-9]{3}/.exec("(212)-555-1234")[0]); // 212
console.log(/[0-9]{3}/.exec("212-555-1234")[0]); // 212
console.log(/[0-9]{3}/.exec("2125551234")[0]); // 212
取 10 位数字的前 3 位数字,或以 1 开头的 11 位数字的 1 后的前 3 位数字。这假设您的域是美国电话号码。
你也可以使用我的图书馆。
https://github.com/Gilshalem/phoneparser
例子
parsePhone("12025550104");
result: { countryCode:1, areaCode:202, number:5550104, countryISOCode:"US" }
正则表达式'^\(*(\d{3})'
应该这样做。从比赛中获得第一组。
这里^
将从头开始匹配,\d{3}
将匹配 3 个数字。\(*
将匹配可选的起始括号。您无需关心区号后的下一个数字或符号。