从电话号码中解析区号

时间:2012-12-13 20:41:17

标签: javascript regex string

我有一个电话号码列表,其格式有多种,例如:(212)-555-1234212-555-12342125551234

使用JavaScript,从这些字符串中仅提取区域代码的最佳方法是什么?

5 个答案:

答案 0 :(得分:5)

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

return myString.replace(/\D/g,'').substr(0, 3);

答案 1 :(得分:3)

获取前3位数字......

/[0-9]{3}/.exec("(212)-555-1234")[0]

示例(fiddle):

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

https://github.com/Gilshallem/phoneparser

示例

parsePhone("12025550104");
result: { countryCode:1, areaCode:202, number:5550104, countryISOCode:"US" }