发布时间: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>