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

求助:JavaScript中移除字符串空格及(0)字符组的正确方法

解决JavaScript中电话号码格式化问题

我来帮你搞定这个电话号码格式化的需求!你想要把"+46 (0) 100 234567"处理成"+46100234567",核心就是要移除(0)字符组和所有空格,我给你两种简洁可靠的实现方案:

方案1:分步替换(直观易懂)

先专门移除(0),再清除所有空格,逻辑清晰不容易出错:

let phone = "+46 (0) 100 234567";
// 第一步:移除(0)
phone = phone.replace(/\(0\)/g, '');
// 第二步:移除所有空格
phone = phone.replace(/\s+/g, '');
console.log(phone); // 输出:+46100234567

方案2:单正则一次替换(更简洁)

用正则的|(或)语法,一次性匹配(0)和所有空格并替换为空:

let phone = "+46 (0) 100 234567";
phone = phone.replace(/\(0\)|\s/g, '');
console.log(phone); // 输出:+46100234567

为什么你之前的写法有问题?

  • 第一个正则/[(0)]*[^0-9+]/g:[(0)]会单独匹配(、0、)中的任意字符,再加上[^0-9+]匹配非数字和+的字符,所以会误删所有的0,这显然不是你想要的。
  • 第二个正则/\(0\)\s*/g:只处理了(0)和它后面的空格,但没覆盖其他位置的空格,所以会留下+46 100 234567这样的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:13:28