我正在尝试编写一个函数,从一个在地球上某个地方有效的字符串中提取有效的电话号码。这是一个真正的国际站点,适用于遍布全球各地的组织,以及每个位置的用户访问它。
我主要需要这个来进行数据库迁移。我迁移的以前的网站只使用了一个简单的文本字段,没有说明,也没有过滤。因此,这会导致电话领域以各种创造性方式使用。
我正在寻找的只是识别字符串中的第一个电话号码,然后在将结果设置为用户个人资料信息之前删除任何多余的字符。
答案 0 :(得分:5)
有一个Google's Phone Number Library的PHP端口。
答案 1 :(得分:2)
你可以使用这样的东西:
$pattern = '/([\+_\-\(\)a-z ]+)/';
或
$pattern = '/([^0-9]+)/i';
$phone = preg_replace($pattern,'', $phone);
或者,使用像:
这样的php过滤器$phone = (int) filter_var($phone, FILTER_SANITIZE_NUMBER_INT);
虽然使用过滤器,但如果允许值以“0”开头,则需要小心。
然后,无论哪种方式,检查允许的电话号码的长度范围~6-12或任何范围覆盖。
答案 2 :(得分:0)
首先,您需要编制有效电话号码格式列表。
其次,您需要创建正则表达式来识别每种格式。
第三,您将对文本运行正则表达式以找到数字。