首頁 » 新西兰电话号码:格式、区号和验证指南

新西兰电话号码:格式、区号和验证指南

本指南为开发人员全面概述了新西兰电话号码格式 洪都拉斯 whatsapp 数据、区号和验证技术。本指南遵循号码管理契约 (NAD) 定义的标准,提供了实用的实施示例和最佳实践。

了解新西兰电话号码结构

新西兰电话号码采用结构化格式,包含国家代码、区号和crm 系統內執行電用户号码等元素。了解这些组成部分对于准确解析和验证至关重要。

关键组件

  • 国家代码: +64(拨打国际电话时必填)
  • 国际前缀: 00 或 0161(从新西兰拨打到其他国家时使用)
  • 国家前缀: 0(用于新西兰境内的国内电话)
  • 区号: 1 位数字(标识地理区域)
  • 用户号码: 7-8 位数字(用户的唯一标识符)

数字格式

新西兰电话号码通常遵循以下格式:

  • 座机:( 0[Area Code][Local Number]例如 03 123 4567)
  • 手机:( 02[Mobile Prefix][Subscriber Number]例如021 123 4567)
  • 免费电话:( 0800 [Subscriber Number]例如 0800 123 456)
  • 高级版:( 0900 [Subscriber Number]例如 0900 123 456)

区号

新西兰的区号按地理位置划分:

  • 03:南岛(例如基督城、但尼丁、因弗卡吉尔)
  • 04:惠灵顿地区(例如惠灵顿、下哈特、上哈特)
  • 06:北岛下区(例如北帕默斯顿、纳皮尔、新普利茅斯)
  • 07:北岛中部(例如汉密尔顿、陶朗加、罗托鲁阿)
  • 09:奥克兰和北地(例如奥克兰、旺格雷)

移动网络前缀

移动网络前缀可识别特定的电信提供商:中国电话号码

  • 021:沃达丰
  • 022: 2度
  • 027:火花
  • 028:火花
  • 029: Spark(物联网/数据)

验证新西兰电话号码

强大的验证对于确保数据完整性和防止错误至关重要。正则表达式为验证电话号码格式提供了强大的工具。

正则表达式模式

以下正则表达式可用于验证不同类型的新西兰电话号码:

const nzPhonePatterns = {
  landline: /^0([34679])([2-9]\d{6})$/,
  mobile: /^02[12789]\d{7,8}$/,
  tollFree: /^0800\d{6,7}$/,
  premium: /^0900\d{6}$/
};

function validateNZPhoneNumber(number) {
  // Remove whitespace and hyphens
  const cleanNumber = number.replace(/[\s-]/g, ''); 
  return Object.values(nzPhonePatterns).some(pattern => pattern.test(cleanNumber));
}

function validateInternationalNZNumber(number) {
  const cleanNumber = number.replace(/[\s-]/g, '');
  if (cleanNumber.startsWith('+64')) {
    return validateNZPhoneNumber('0' + cleanNumber.slice(3));
  }
  return false;
}
  • landline:匹配固定电话号码,强制使用正确的区号和 7 位本地号码格式。本地号码不得以 0 或 1 开头。
  • mobile:匹配手机号码,考虑用户号码长度的变化(7-8 位数字)。
  • tollFree:将免费电话号码(0800)与 6-7 位用户号码匹配。
  • premium:将收费电话号码 (0900) 与 6 位用户号码匹配。

validateNZPhoneNumber函数可高效地根据所有定义的模式检查给定的数字。该validateInternationalNZNumber函数可处理带有国际前缀 (+64) 的数字。

号码可携性

号码可携性允许用户在更换运营商时保留自己的电话号码。这需要实施实时查找机制来确定当前运营商和路由信息。请考虑使用专用的号码可携性服务或 API。

  • 缓存:实现缓存以减少查找延迟并最大限度地降低 API 成本。
  • 错误处理:实现强大的错误处理以妥善管理查找失败。
  • 速率限制:实施速率限制以防止可移植性服务过载。

具有缓存和错误处理的号码可携带服务的示例实现:

class NumberPortabilityService {
  // ... (Implementation for normalizeNumber, checkCache, performLookup, cacheResult, handleError)
}

受保护的数字范围

某些号码范围是为特定目的而保留的,不应分配给普通用户。这些包括:

  • 紧急服务: 111
  • 特殊服务: 0800(免费)、0900(收费)、0500(预留)

确保您的应用程序逻辑适当地处理这些受保护的范围。

网络覆盖验证

验证网络覆盖范围可防止在服务有限或无服务的区域尝试拨打电话,从而提升用户体验。这需要访问覆盖范围数据,可能通过第三方 API 或数据库进行。

生产部署注意事项

将应用程序部署到生产环境时,请考虑以下事项:

返回頂端