如何将 phone 号码变成新的形式(带区号)
How to turn a phone number into a new form (with area codes)
我正在尝试找到一种将 phone 号码 (+4407111111111) 转换为类似 44711111111 的方法。
基本上我要求的是可以删除零和 + 的东西。另外,如果此人可以选择区号。
谢谢 :-)
如果只想删除0和+可以使用php的preg_replace函数。
如果您想将号码拆分为国家代码、区号和实际号码,在这种情况下,您需要有一个分隔符。
使用 preg_replace()
将 phone 数字转换为所需的输出:
$phone = '+4407111111111';
$newPhone = preg_replace('/^\+([1-9]+)0(\d+)$/','',$phone);
echo $newPhone;
正则表达式解释:
- ^ = 从字符串开头开始
- + = 匹配一个“+”
- ([1-9]+) = 匹配从 1 到 9 的数字序列并将它们分配给 $1
- 0 = 匹配一个“0”
- (\d+)$ = 匹配直到字符串末尾的所有数字并将匹配分配给 $2
替换很简单,用上面解释中定义的“$1$2”即可。
比尝试拆分给定的 phone 号码更好的方法是获取国家代码、区号和 phone 号码的数据作为单独的值。使事情变得更容易并提供更好的结果,因为 phone 数字在不同国家/地区的处理方式可能略有不同。
让您的用户选择分别为您提供国家代码、区号和 phone 号码。我已经看到我的表格使用了您的方法,但我无法将我的 phone 号码添加到这些表格 +932134564545(显然,我的号码不正确,但数字相同 :))
我正在尝试找到一种将 phone 号码 (+4407111111111) 转换为类似 44711111111 的方法。
基本上我要求的是可以删除零和 + 的东西。另外,如果此人可以选择区号。
谢谢 :-)
如果只想删除0和+可以使用php的preg_replace函数。 如果您想将号码拆分为国家代码、区号和实际号码,在这种情况下,您需要有一个分隔符。
使用 preg_replace()
将 phone 数字转换为所需的输出:
$phone = '+4407111111111';
$newPhone = preg_replace('/^\+([1-9]+)0(\d+)$/','',$phone);
echo $newPhone;
正则表达式解释:
- ^ = 从字符串开头开始
- + = 匹配一个“+”
- ([1-9]+) = 匹配从 1 到 9 的数字序列并将它们分配给 $1
- 0 = 匹配一个“0”
- (\d+)$ = 匹配直到字符串末尾的所有数字并将匹配分配给 $2
替换很简单,用上面解释中定义的“$1$2”即可。
比尝试拆分给定的 phone 号码更好的方法是获取国家代码、区号和 phone 号码的数据作为单独的值。使事情变得更容易并提供更好的结果,因为 phone 数字在不同国家/地区的处理方式可能略有不同。
让您的用户选择分别为您提供国家代码、区号和 phone 号码。我已经看到我的表格使用了您的方法,但我无法将我的 phone 号码添加到这些表格 +932134564545(显然,我的号码不正确,但数字相同 :))