gpt4 book ai didi

javascript - 如何用 JavaScript 中的正则表达式捕获组替换整个字符串?

转载 作者:行者123 更新时间:2023-12-04 09:55:21 26 4
gpt4 key购买 nike

在 NodeJS 应用程序中,我的数据中有一个电话号码字段,它在同一个字符串中一个接一个地显示任意数量的电话号码:\n\n \n (555) 555-5555 (Main)\n\n, \n\n \n (777) 777-777 (Domestic Fax)\n\n我只想提取“主要”电话号码并将其转换为格式 555-555-5555 ,这就是主号码。基本上我只想提取'Main'之前的任何数字并使其更清晰(用'-'替换空格)
我找到了正确的正则表达式字符串const phoneRegex = /^[ \\n]*\(([0-9]{3})\)( )([0-9]{3}-[0-9]{4}) \(Main\).*$/但是当我尝试替换字符串时,它不起作用foo.phone =foo.phone.replace(phoneRegex,'$1-$3')我一直得到整个匹配的部分——这是所有的\n 和一切,包括 '(Main)'
我已经搜索了如何用捕获组替换整个字符串,但我还没有弄清楚。

最佳答案

您可以使用

var s = "\\n\\n  \\n  (555) 555-5555 (Main)\\n\\n, \\n\\n  \\n  (777) 777-777 (Domestic Fax)\\n\\n";
console.log(
s.replace(/^[^]*?\((\d{3})\)\s*(\d+)-(\d+)\s*\(Main\)[^]*/, '$1-$2-$3')
);


详情
  • ^ - 字符串开头
  • [^]*? - 任何 0 个或更多字符,尽可能少
  • \( - 一个 (
  • (\d{3}) - 第 1 组:三位数
  • \) - 一个 )字符
  • \s* - 0+ 个空格
  • (\d+) - 第 2 组:一位或多位数字
  • - - 连字符
  • (\d+) - 第 3 组:一位或多位数字
  • \s* - 0+ 个空格
  • \(Main\) - 一个 (Main)字符串
  • [^]* - 字符串的其余部分。

  • regex demo .

    关于javascript - 如何用 JavaScript 中的正则表达式捕获组替换整个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61931779/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com