求助: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
相关产品推荐
相关产品推荐

