海地名单

法国电话号码:格式、区号和验证指南

本指南深入介绍了法国电话号码系统,涵盖格式、区号、验证、可移植性和主要市场参与者。它结合了最新的 ARCEP 法规以及面向开发人员和电信专业人士的最佳实践。

快速导航:中欧数据

数字格式
紧急服务
国际电话
号码可携性
电信运营商和市场格局
特殊情况和服务号码
技术实现
快速参考

Country: France
Country Code: +33
International Prefix: 00 (or +)
National Prefix: 0
Emergency: 112
概述
法国采用 10 位封闭编号方案。这意味着法国境内直布罗陀电话号码:格式、区号和验证指南的所有电话(即使是本地电话)都需要拨打全部十位数字。该系统的结构可以识别地理区域、移动服务和特殊号码。了解此结构对于使用法国电话号码的开发人员至关重要。

重要监管更新(2025 年)

取消地理号码限制:运营商现在可以分配任何获批范围内的号码,不受地理位置限制。这一变化促进了竞争并简化了号码分配。
加强反欺诈措施: ARCEP 实施了更严格的规定来打击电话号码欺诈,包括加强验证流程。
新的移动号码规定: 具体规定管理移动号码的分配和使用,旨在提高透明度和消费者保护。有关详细信息,请参阅 ARCEP 文档。
扩展的短信紧急服务:电话号码业务线索 专为聋人和听力障碍者设计的紧急电话号码 114 现在支持短信和视频通话,扩大了可访问性。
数字格式
所有法国电话号码均由 10 位数字组成,以“0”为前缀。后续数字用于区分号码类型。

Format: 0X XX XX XX XX
Where:
0 = National Prefix
X = Service/Region Identifier (see below)
数字类型
地理(01-05): 这些数字在历史上与特定区域相关,现在可以在全国范围内分配。
移动(06-07): 识别手机订阅。
特殊服务 (08): 包括免费电话号码、费用共担电话号码和收费电话号码。
非地理(09): 用于 VoIP 和其他非基于位置的服务。
紧急服务
验证特定电话和网络的紧急号码功能至关重要,尤其是在使用 VoIP 时。

服务 数字 可用性 语言

所有紧急情况 112 24/7 多种语言
医疗(SAMU) 15 24/7 法语、英语
警察 17 24/7 法语、英语
消防与救援 18 24/7 法语
聋人/听力障碍者 114 24/7 短信、视频通话
国际电话
从国外拨打法国电话

Format: +33 X XX XX XX XX (Recommended)
Alternative: 0033 X XX XX XX XX
删除前导零: 从国外拨打电话时,删除法国号码中的前导“0”。
加号 (+) 前缀:使用“+”前缀比“00”更可取,因为它可以自动适应本地国际拨号前缀。
从法国拨打国外电话

Format: 00 [Country Code] [Number]
Alternative: + [Country Code] [Number] (Recommended)
如有任何变化,请务必查阅特定国家的拨号说明。

号码可携性
号码可携性允许用户在更换运营商时保留自己的电话号码。ARCEP 规定确保流程顺利且安全。

处理时间: 通常在 3 个工作日内完成。
服务连续性: 传输期间禁止中断服务。
免费: 运营商不能对移植过程收取费用。
消费者保护: 设有 14 天的冷静期和严格的数据隐私法规。
电信运营商和市场格局
法国电信市场竞争激烈,有几家主要参与者:

操作员 市场地位(2025 年) 网络覆盖范围(大约)
橙子 领导者 (40%) 4G/5G 覆盖率 99%
特殊功能寄存器 主要运营商 (25%) 98% 4G
布依格电信 已建立(20%) 97% 4G
免费手机 创新者(15%) 95% 4G
ARCEP 通过基础设施共享要求、透明的定价要求和对虚拟运营商 (MVNO) 的支持来促进竞争。

特殊情况和服务号码
黄金数字 (Numéros Dorés)
黄金号码是具有容易记住的模式的优质号码(例如 06 88 88 88 88)。ARCEP 法规监督其分配和使用。

短代码和特殊服务
特定服务有各种短代码。 请始终核实来自 ARCEP 的最新信息。

技术实现
验证

const validateFrenchNumber = (number) => {
// Remove whitespace and non-digit characters
const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');

const patterns = {
geographic: /^0[1-5]\d{8}$/,
mobile: /^0[67]\d{8}$/,
tollFree: /^080[0-5]\d{6}$/, // Example toll-free range
premium: /^08[9]\d{7}$/, // Example premium-rate range. Check ARCEP for full ranges.
sharedCost: /^08[12]\d{7}$/, // Example shared-cost range. Check ARCEP for full ranges.
voip: /^09\d{8}$/ // Example VoIP range. Check ARCEP for full ranges.
};

return Object.entries(patterns).find(([type, pattern]) => pattern.test(cleanedNumber));
};


// Example usage:
console.log(validateFrenchNumber("06 12 34 56 78")); // Returns matching pattern (mobile)
console.log(validateFrenchNumber("+33612345678")); // Returns undefined (needs cleaning first)

// Clean and validate international number
const internationalNumber = "+33612345678";
const cleanedInternational = internationalNumber.replace(/\s/g, '').replace(/\D/g, '').replace(/^330/, '0');
console.log(validateFrenchNumber(cleanedInternational)); // Returns matching pattern (mobile)

格式化

const formatFrenchNumber = (number) => {
const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');
return cleanedNumber.replace(/(\d{2})(?=\d)/g, '$1 ');
};
国际化

const toInternational = (number) => {
const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');
return `+33 ${cleanedNumber.substring(1)}`; // Remove leading 0, add +33 and space
};
最佳实践
使用库:为了可靠地处理国际号码,请考虑使用专用库,例如libphonenumber​​。
正则表达式: 虽然对于基本验证很有用,但请注意,法语编号规则可能会发生变化。定期更新您的模式。
输入清理:始终清理用户输入以防止意外行为和安全漏洞。
测试:使用各种有效和无效的数字格式彻底测试您的实现。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注