javascript - 第一次使用正则表达式

标签 javascript regex

我刚刚开始使用正则表达式,我正在尝试解决这个问题,但它始终返回 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/

相关文章:

Javascript:使用正则表达式来分割和存储?

javascript - Nodejs 的正则表达式全局匹配不起作用

javascript - 循环间隔超时

javascript - 在 express js 中允许多个 CORS 域

javascript - Bootstrap 从模式弹出窗口返回结果到每一行?

python - 从串口数据过滤输入

javascript - 将 HTML 转换为 Word,然后转换为 pdf

javascript - 在引导日期范围选择器中解析日期

javascript - 为什么这个正则表达式作为 var pattern =/.../而不是作为 var pattern = RegExp ("...")?

python - 正则表达式 - 用大写字母替换每个匹配项