You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现手机号格式化:去空格、首字符为0时替换为+355

JavaScript手机号格式化实现方案
function formatPhone(phone) {
  // 第一步:清理所有非+和数字的字符
  const cleanedPhone = phone.replace(/[^+\d]/g, '')
  // 第二步:开头为0则替换为国家码+355,否则直接返回清洗结果
  return cleanedPhone.startsWith('0') ? cleanedPhone.replace(/^0/, '+355') : cleanedPhone
}

测试验证

// 场景1测试
console.log(formatPhone('0321 1234567')) // 输出:+3553211234567
// 场景2测试
console.log(formatPhone('+355 321 1234567')) // 输出:+3553211234567
// 场景3测试
console.log(formatPhone('+3553211234567')) // 输出:+3553211234567

逻辑说明

  • 清洗步骤的正则/[^+\d]/g会匹配所有不是+号和数字的字符,包括空格、横杠、括号等常见的手机号分隔符,全部替换为空完成清洗
  • 第二步用startsWith('0')判断清洗后的手机号是否以0开头,符合条件则用正则^0匹配开头的0,替换为国家码+355,本身已经带+355的手机号不会触发替换逻辑,直接返回清洗后的结果即可

如果需要额外增加格式校验,可以在返回前增加判断逻辑,比如判断最终结果是否符合^\+355\d{9}$的规则(阿尔巴尼亚手机号国家码+355后接9位数字),不符合的话抛出错误或者返回提示:

function formatPhone(phone) {
  const cleanedPhone = phone.replace(/[^+\d]/g, '')
  const formatted = cleanedPhone.startsWith('0') ? cleanedPhone.replace(/^0/, '+355') : cleanedPhone
  // 可选:格式校验
  const validRule = /^\+355\d{9}$/
  if (!validRule.test(formatted)) {
    throw new Error('手机号格式无效')
  }
  return formatted
}

内容的提问来源于stack exchange,提问作者Ani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:39:03