4

我想检查一下文本是否包含电话号码。

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
4

2 回答 2

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

于 2013-04-28T14:22:33.003 回答
1

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

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

  • 非空
  • 仅包括以下字符:
    • 0-9
    • +
    • [space]
于 2013-04-27T23:21:39.793 回答