如何使用正则表达式实现美国电话号码的掩码处理?
美国电话号码正则掩码实现方案
直接复用你之前的分组正则逻辑,替换时把前两组对应的内容换成固定的***即可,一步到位得到目标格式:
const phoneNo = '4345345345'; const maskedFormatted = phoneNo.replace(/(\d{3})(\d{3})(\d{4})/, '(***) ***-$3'); console.log(maskedFormatted); // 输出:(***) ***-5345
逻辑说明
- 正则依然将10位数字拆分为
(\d{3})(\d{3})(\d{4})三个分组 - 替换字符串中,前两个分组的位置直接用
***填充,第三个分组通过$3引用原号码的最后4位数字,保留不变
如果你的输入可能是已经格式化好的号码(比如带括号、空格、横杠),可以先提取纯数字再处理:
const phoneNo = '(434) 534-5345'; // 先清除所有非数字字符 const pureDigits = phoneNo.replace(/\D/g, ''); // 再执行掩码格式化 const maskedFormatted = pureDigits.replace(/(\d{3})(\d{3})(\d{4})/, '(***) ***-$3'); console.log(maskedFormatted); // 输出:(***) ***-5345
内容的提问来源于stack exchange,提问作者Hassan Qamar
相关产品推荐
相关产品推荐

