如何preg_match国家电话号码代码



如何获取没有国家代码或空白的电话号码?

我试过的那个也删除了电话号码中间的359

取值为359或+359或00359或+00359

02是城市代码,我需要删除为什么我这样做的0 (int)

<?php
$string = '+00359 02 359 10969';
$string = str_replace(" ", '', $string);
$string = (int)preg_replace("/(?:359)/", '', $string);
echo  $string;

输出
210969

应该

235910969

这个话题比你想象的要复杂得多。我建议使用谷歌电话库https://github.com/giggsey/libphonenumber-for-php

通常国家代码会改变,但基本上最后10个数字是本地号码,但在您的示例中,您不想要前0个数字,所以总共9个数字,所以您可以像下面这样简单地使用。

$string = '+00359 02 359 10969';
$string = str_replace(' ', '', $string);
$string = substr($string, -9);
echo  $string; // Output: 235910969

否则,您必须定义所有国家/地区代码,检查并从字符串的开头删除所有代码。

如果格式总是++country code+space+rest of phone number,则可以使用explosion ()

$string = '+00359 02 359 10969';
$string = explode(" ",$string,2)[1]; // -> 02 359 10969

02是城市代码,我需要删除为什么我这样做的0 (int)

ltrim吗?

$string = '+00359 02 359 10969';
$string = explode(" ",$string,2)[1]; // -> 02 359 10969
$string = ltrim($string,'0'); // -> 2 359 10969

试试下面的命令:

'^+(?:00359s0)' or '^+?(00359|359|00359)s0'

最新更新