如何检查文本是否包含带有javascript的电话号码

时间:2013-04-27 23:19:33

标签: javascript regex

如果文字包含电话号码,我想查看。

Regex = /\d{6,}/; 

这将检查连续6位数,但电话号码也可以包含空格,+,(,), - ,.和斜线......

我如何检查任何类型的电话号码?

我想检测这些形式的数字:

+49 123 456789
0049 123456789
(040) 132 45 67
040/123 456
040-132-12
040 123456
+49 (0)40-123456

2 个答案:

答案 0 :(得分:2)

这是不可能的是不可行的。世界各地的电话号码的长度和格式太多了。您应该专注于您愿意接受的格式/长度的某个子集。

如果这仍然给你留下太多选择,你可能需要像这样进行简单的检查:

  • 非空
  • 仅包含以下字符:
    • 0-9
    • +
    • [space]

答案 1 :(得分:-1)

并非100%可以服务于所有情况,您可能必须根据自己的需要进行调整,但例如这个正则表达式可以完成这项任务:

var Regex = /\b[\+]?[(]?[0-9]{2,6}[)]?[-\s\.]?[-\s\/\.0-9]{3,15}\b/m;  

以下是一个如何运作的示例:

function check_for_phone(){
    
      var message = document.getElementById("a").value;
      var Regex = /\b[\+]?[(]?[0-9]{2,6}[)]?[-\s\.]?[-\s\/\.0-9]{3,15}\b/m; 
       
      alert( Regex.test(message) ); 
      // This will alert 'true' if the textarea contains a phonenumber 
}
<textarea id="a">please call me: 040 12345</textarea>
<input type="button" onclick="check_for_phone()"  value="check for telephone">

在此处找到:https://stackoverflow.com/a/29767609/1069083