php - 使用 preg_replace 在 PHP 字符串中查找电话号码的终极方法

标签 php preg-replace phone-number

目前正在开发一个项目,其中有大量文本字符串,我们必须本地化电话号码并使其在 Android 手机上可点击。

电话号码可以采用不同的格式,并且前后可以有不同的文本。有没有简单的方法可以检测各种电话号码格式?可以使用一些库吗?

电话号码可以显示类似,必须适用于所有这些组合。所以结果是这样的

<a href="tel:number">number</a>

+61 8 9000 7911

+2783 207 5008

+82-2-806-0001

+56 (2) 509 69 00

+44 (0)1625 500125

+1 (305)409 0703

031-704 98 00

+46 31 708 50 60

最佳答案

也许是这样的:

/(\+\d+)?\s*(\(\d+\))?([\s-]?\d+)+/
  • (\+\d+)? = “+”后跟一个或多个数字(可选)
  • \s* = 任意数量的空格字符(可选)
  • (\(\d+\))? = 一个“(”后跟一个或多个数字,后跟“)”(可选)
  • ([\s-]?\d+)+ = 一组或多组数字,前面可以有空格或破折号

不过,说实话,我怀疑您能否找到一种单一表达式来统治所有这些。电话号码可以采用多种不同的格式,因此在不误报或漏报的情况下匹配任何可能的格式可能是不切实际的。

关于php - 使用 preg_replace 在 PHP 字符串中查找电话号码的终极方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141295/

相关文章:

php - 具有固定位数的唯一代码

php - preg_replace 输入标签中的特定 src 属性

Javascript 用颜色突出显示所有排除的字符

java - 如何将字符串格式化为数字 (123) 456-7890

android - Phone.IS_PRIMARY 未提供联系人 : Android 的主号码

php - jquery 与 PHP mySQL 聊天

php - 数据库结构跟踪用户是否打开特定内容的最佳实践?

php - Laravel 5.2 条件验证

PHP 得到一堆奇怪的代码\u0644\u064a\u0646\u0643\u0627\u0644

android - 以编程方式获取电话号码 - Android