1

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?

4

5 回答 5

6

首先,删除所有不是数字的内容以获得纯数字。然后,通过切片获取前三位:

return myString.replace(/\D/g,'').substr(0, 3);
于 2012-12-13T20:45:04.273 回答
5

获取前 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
于 2012-12-13T20:45:28.733 回答
1

取 10 位数字的前 3 位数字,或以 1 开头的 11 位数字的 1 后的前 3 位数字。这假设您的域是美国电话号码。

于 2012-12-13T20:45:01.697 回答
1

你也可以使用我的图书馆。

https://github.com/Gilshalem/phoneparser

例子

parsePhone("12025550104");
result: { countryCode:1, areaCode:202, number:5550104, countryISOCode:"US" }
于 2014-07-01T10:12:25.853 回答
0

正则表达式'^\(*(\d{3})'应该这样做。从比赛中获得第一组。

这里^将从头开始匹配,\d{3}将匹配 3 个数字。\(*将匹配可选的起始括号。您无需关心区号后的下一个数字或符号。

于 2012-12-13T20:43:44.983 回答