如何使用PHP验证电话号码?

2022-08-30 09:37:26

如何使用 php 验证电话号码


答案 1

以下是我如何找到有效的 10 位数美国电话号码。在这一点上,我假设用户想要我的内容,所以数字本身是可信的。我正在使用最终发送SMS消息的应用程序,因此无论如何我都只想要原始数字。格式设置始终可以在以后添加

//eliminate every char except 0-9
$justNums = preg_replace("/[^0-9]/", '', $string);

//eliminate leading 1 if its there
if (strlen($justNums) == 11) $justNums = preg_replace("/^1/", '',$justNums);

//if we have 10 digits left, it's probably valid.
if (strlen($justNums) == 10) $isPhoneNum = true;

编辑:如果有人感兴趣,我最终不得不将其移植到Java。它每次击键都会运行,所以我试图让它保持相当轻:

boolean isPhoneNum = false;
if (str.length() >= 10 && str.length() <= 14 ) { 
  //14: (###) ###-####
  //eliminate every char except 0-9
  str = str.replaceAll("[^0-9]", "");

  //remove leading 1 if it's there
  if (str.length() == 11) str = str.replaceAll("^1", "");

  isPhoneNum = str.length() == 10;
}
Log.d("ISPHONENUM", String.valueOf(isPhoneNum));

答案 2

由于电话号码必须符合模式,因此可以使用正则表达式将输入的电话号码与在正则表达式中定义的模式进行匹配。

php 同时具有 ereg 和 preg_match() 函数。我建议使用preg_match(),因为这种正则表达式的样式有更多的文档。

示例

$phone = '000-0000-0000';

if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {
  // $phone is valid
}

推荐