正则表达式从电话号码中提取两位数字

时间:2015-10-21 12:34:57

标签: javascript regex

我试图从我的手机中只拿2个字符。 我使用了正则表达式匹配^\+55,这将返回以下示例。

电话号码:+5546342543

结果:46342543

预期结果仅为46

我不想使用子字符串作为答案,而是想用正则表达式从电话号码中提取它。

任何人都可以帮助我。 谢谢。

4 个答案:

答案 0 :(得分:1)

试试:

'+5546342543'.match(/^\+55(\d{2})/)[1];

答案 1 :(得分:1)

您使用的模式 - ^\+55 - 匹配字符串开头的文字+和之后的两个5

46是在初始+55之后出现的子字符串。在某些语言中,您可以使用look-behind(请参阅example)将某些文字与其他文字匹配。

JavaScript没有后备支持,因此,您需要诉诸capturing groups

您可以使用string#matchRegExp#exec获取标有圆括号的捕获文字:

var s = '+5546342543';
if ((m=/^\+55(\d{2})/.exec(s)) !== null) {
    document.write(m[1]);
  }

此示例处理不匹配时的情况。

答案 2 :(得分:0)

这将得到你想要的东西

"+5546342543".match(/^\+55(.*)/)[1]

答案 3 :(得分:0)

这可以解决您的问题吗?

phoneNumber = "+5546342543"
phone = phoneNumber.substr(3) // returns "46342543" 
twoDigits = phoneNumber.substr(3,2) // returns "46"

使用引用的substr()方法:

  

substr()方法返回从指定位置开始的字符串中的字符到指定的字符数。

语法:str.substr(start[, length])

来源:Mozilla MDN