替换字符串以匹配JavaScript中的正则表达式

时间:2017-06-26 02:14:21

标签: javascript regex

使用正则表达式模式进行字符串匹配的最有效方法是什么?

// Something like this:

let phone = '+12345678901';
const phoneRegexp = /\+\d{1,2}\s\(\d{3}\)\s\d{3}\-\d{4}/;
console.log(doTheAwesomeness(phone, phoneRegexp));

// Output: +1 (234) 567-8901

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以捕获数字模式并替换为后引用:

phone.replace(/^(\+\d{1,2})(\d{3})(\d{3})(\d{4})$/, "$1 ($2) $3-$4")
# '+1 (234) 567-8901'

您可能希望添加字符串anchor ^的开头和字符串anchor $的结尾,以确保字符串与您指定的模式完全匹配(如果您尝试格式化手机)数;而且正如@TimBiegeleisen评论的那样,如果这与模式不匹配,则字符串不会发生任何事情,因此您需要手动检查字符串是否与模式匹配并正确处理异常。