发布时间:2025年11月25日   作者:Seth Larson   原文链接:sethmlarson.dev/mobile-browsers-and-telephone-numbers

WebKit 浏览器会把所有数字都当成电话号码

就像 Excel 总会把内容自动识别为日期一样,搭载 WebKit 内核的移动端浏览器,会将大量数字文本自动判定为电话号码。 一旦检测到符合规则的数字,浏览器就会把页面中的普通文本替换为可点击的 <a href="tel:..."> 链接,点击后会直接拨打对应号码。

这个功能有时很实用,但也常常令人困扰:页面里无关的普通数字,会突然变成无法正常使用的超链接。

下方罗列了所有可能被识别为电话号码的数字格式,你可以直观看到这个问题的影响范围。 被浏览器识别为电话号码的内容,会通过以下 CSS 样式高亮为蓝色:

a[href^=tel] { background-color: #00ccff; }

下方所有内容在原始代码中都不是电话链接,全部由浏览器自动转换生成。 如果你使用的不是 WebKit 内核浏览器,可以开启页面复选框来模拟 WebKit 的识别效果。

2 22 222 2222 22222 222222 2222222 22222222 222222222 2222222222 22222222222 111111111111 222222222222 555555555555 1111111111111 2222222222222(疑似异常) 5555555555555 11111111111111 22222222222222 55555555555555 111111111111111 222222222222222 555555555555555
2-2 2-2-2 22-2-2 22-22-2 22-22-22 22-22-222 22-222-222 222-222-222 222-222-2222 222-2222-2222 2222-2222-2222 2222-2222-22222 2222-22222-22222 22222-22222-22222 2 222-222-2222
+1 222-222-2222 +2 222-222-2222(现实中不存在 +2 国际区号) +28 222-222-2222(该区号为未分配编码,并未投入使用) +1222-222-2222 +2222-222-2222
(+1)222-222-2222 (+2)222-222-2222 (1)222-222-2222 (2)222-222-2222 (1222-222-2222 (1 222-222-2222 1)222-222-2222
222–222–2222(半角连接符) 222—222—2222(全角连接符) [1]222-222-2222 <1>222-222-2222

如果你还发现了其他会被自动识别为电话号码的数字组合,欢迎提交代码合并请求或发送邮件告知作者。


如何阻止浏览器自动识别电话号码?

想要禁止浏览器自动解析并转换电话号码,只需在页面的 <head> 标签中添加以下代码:

<meta name="format-detection" content="telephone=no">

添加该标签后,浏览器就会关闭电话号码自动识别功能。 如果页面需要可点击的拨号电话,可以手动使用 tel: 协议来实现,示例如下:

<a href="tel:+222-222-222-2222">(+222)222-222-2222</a>