我刚刚开始使用正则表达式,我正在尝试解决这个问题,但它始终返回 null。我的代码有什么问题吗? 我希望它返回这个 = (833) 741-2093
function phoneNumber(numbers){
var num = numbers.join('');
var r = /\(\d{3}\)\s\d{3}\-\d{4}/;
var match = num.match(r);
return match;
}
var output = phoneNumber([8, 3, 3, 7, 4, 1, 2, 0, 9, 3]);
console.log(output);
最佳答案
试试这个:
function phoneNumber (numbers) {
var numberStr = numbers.join('');
return numberStr.replace(/(\d{3})(\d{3})(\d{4})/, "\($1\) $2\-$3");
}
var output = phoneNumber([8, 3, 3, 7, 4, 1, 2, 0, 9, 3]);
console.log(output);
需要先捕获这三组数字,然后在.replace()
的第二个参数中格式化它们。 regex101 demo
关于javascript - 第一次使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44345782/