javascript / jquery:从字符串中提取电话号码

时间:2016-04-14 00:16:17

标签: javascript jquery regex

我正在尝试从字符串中提取电话号码,该字符串可能为空或看起来像以下示例之一:

  • “Tél.:0427 52 12 87 Port。:07 67 11 06 87”
  • “Tél.:0427 52 12 87”
  • “Port。:07 67 11 06 87”

此外,电话号码可能如下所示:(0039)234786 所以常数是“Tél。:”和/或“Port。:”

将这些数字放在两个变量中(单元格和底线)。

我已经尝试过split和indexOf函数,但我很确定有更好,更有效的方法来做到这一点。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

如果您已经 知道 ,您的字符串就是电话号码,只需替换所有非数字字符即可留下您的电话号码:

telInteger = parseInt(inputString.replace(/[^0-9]/g,''));

这样,格式是什么并不重要,你总是得到这个数字。

如果您不知道您的字符串中有一个电话号码,并且您只是在野外搜索,则可以在其他答案中使用RegEx' s 检测电话号码。

希望这有帮助

答案 1 :(得分:1)

这是一个正则表达式,用于查找您的电话号码的两个版本 这两个模式由管道符(|)分隔。

在管道的左侧,它连续四次查找位数字空间,然后查找最终位数

在管道的右侧,它会查找括号,然后连续四位数,然后结束括号,然后是空格,然后连续六位数

我在regexr.com中通过复制和粘贴文本进行了测试,然后在顶部字段中输入:

/(((\d{2})(\s)){4}(\d){2})|(\((\d){4}\)(\s)(\d){6})/g

注意:regexr.com提供外部斜杠,因此不需要包含上面示例中的斜杠,并且默认为全局" g"最后的旗帜。

答案 2 :(得分:0)

使用RegEx:

((电话\ S:\ S)((\ d \ S] +))\ S([\ d] +)????)((端口\ S?:\。S)( [\ d \ S] +))?

这应该捕捉到你想要获得的一切。

我看到你说你对RegEx没有多少经验......我也没有,但是今天早上我刚刚完成了这个教程(http://regexone.com/),我现在非常自信地使用它们。学习真的不是那么多(至少能够做很多事情)!

您知道,我确实使用RegEx工具检查了它并且它有效!