gpt4 book ai didi

javascript - 重构正则表达式以不包含空组

转载 作者:行者123 更新时间:2023-11-29 10:35:34 25 4
gpt4 key购买 nike

嘿,我有以下有效的脚本:

它查找字符串 Phone: (##) ### ####

$(function(){

var regex = /(^|\W)Phone:($|\W)\(?([0-9]{2})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/g;
var target = $('[data-hook="phone-number"]');
var string = target.html();

string = string.replace(regex, "><a href=\"tel:$3$5$6\">Phone: ($3) $5 $6</a>");

target.html(string);
});

但是你可能会注意到它很粗糙(正则表达式不是我的强项)我想知道有没有办法忽略空组($1$2$4) 在这种情况下。

所以我可以在理想世界中使用 $1$2$3

我也不知道如何阻止 (^|\W) 忽略 > 符号,因此为什么在我的 replace有一个尾随 > 有没有办法告诉正则表达式移动/删除一个数字?

最佳答案

我认为您正在寻找创建非捕获组的 (?:):

/(?:^|\W)Phone:(?:$|\W)\(?(?:[0-9]{2})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/g

作为Alan Moore说,你也可以缩短一点:

/\bPhone:\s*\(?(?:[0-9]{2})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/g

关于javascript - 重构正则表达式以不包含空组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973329/

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