0

有人可以帮助使用正则表达式。我正在尝试格式化电话号码并处理一系列分机号码。我尝试使用范围 [1-5],但这似乎不起作用。

$(".phone").text(function(i, text) {
    if(text.length == 10) { //this portion works fine
        text = text.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
        return text;
    }else if (text.length > 10) { //this is where I need help
        text = text.replace(/(\d{3})(\d{3})(\d{4})(\d{[1-5]})/, "($1) $2-$3 x$4");
        return text;
    }
});

这里有一个正则表达式来处理一系列数字吗?

4

2 回答 2

2

是的,省略方括号并使用逗号。

\d{1,5}
于 2013-07-03T16:15:55.293 回答
1

您对 {[1-5]} 的使用无效。{ 和 } 表示匹配的数量在其中包含的两个数字之间(可以省略任何一个参数),而 [1-5] 匹配 1、2、3、4 或 5 中的一个字符。您需要:

    text = text.replace(/(\d{3})(\d{3})(\d{4})(\d{1,5})/, "($1) $2-$3 x$4");

反而。有关详细信息,请参阅此关于重复的快速入门。

于 2013-07-03T16:15:46.647 回答