Javascript 如何在正则表达式中生成ABC-1234格式

Javascript 如何在正则表达式中生成ABC-1234格式,javascript,php,regex,Javascript,Php,Regex,我已经使用正则表达式进行了格式化: <p class="phone">2124771000</p> $(".phone").text(function(i, text) { text = text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, "$1-$2-$3"); return text; }); 2124771000 $(“.phon

我已经使用正则表达式进行了格式化:

<p class="phone">2124771000</p>
 $(".phone").text(function(i, text) {
        text = text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, "$1-$2-$3");
        return text;
    });

2124771000

$(“.phone”).text(函数(i,text){ text=text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/,“$1-$2-$3”); 返回文本; });
使用上述示例,我能够转换212-477-1000:

<p class="phone">ABC1234</p>

ABC1234

现在我想使用上面的文本制作ABC-1234字符串


测试环境:

以下内容将检查3个大写字母和4个数字:

$(".phone").text(function(i, text) {
    text = text.replace(/([A-Z]{3})(\d{4})/, "$1-$2");
    return text;
});

你可以试试这个式样

text = text.replace(/([a-zA-Z]+)(\d+)/, "$1-$2");

您可以在
ABC1234
中尝试此操作:

$(“.phone”).text(函数(i,text){
text=text。替换(/([a-z]+(?=\d+))/i,“$1-”;
返回文本;
});


ABC1234

如果您希望在1个正则表达式中捕获这两个参数

您可以使用任一表达式
|

例如

/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/

函数替换器(m、p1、p2、p3、p4、p5){
if(p1)返回[p1,p2,p3]。连接('-'))
else返回[p4,p5]。join('-');
}
$(“.phone”).text(函数(i,text){
text=text.replace(/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/,replacer);
返回文本;
});

ABC1234

1234

XYZ2345

99999999