Javascript 将int格式设置为电话号码

Javascript 将int格式设置为电话号码,javascript,jquery,asp.net-mvc,asp.net-mvc-2,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 2,是否有一种方法可以将例如:0000000000格式化为(000)000-0000?我返回一个列表框,其中包含尚未格式化的电话号码集合。我想要的是格式化它。这就是我的观点: <%= Html.ListBox("phoneList")%> 编辑 $('#phoneList').each(function() { var phoneNumber = $(this).text(); var formatPhoneNumber

是否有一种方法可以将例如:0000000000格式化为(000)000-0000?我返回一个列表框,其中包含尚未格式化的电话号码集合。我想要的是格式化它。这就是我的观点:

<%= Html.ListBox("phoneList")%>
编辑

$('#phoneList').each(function() {
                var phoneNumber = $(this).text();
                var formatPhoneNumber = phoneNumber.replace(/(\d{3})(\d{3})(\d{4})/, '($1)$2-$3');
                alert(formatPhoneNumber);
            });

如何将其分配回列表框中显示?

如果您说要在客户端执行此操作,那么在变量中给定电话号码,您可以执行以下操作:

或者这个:


编辑:

如@Nick Craver所述,第二个版本可以缩短为:

var res = str.replace(/(\d{3})(\d{3})(\d{4})/, '($1)$2-$3');

就这么简单。如果要处理多个数字,可以使用简单的if语句

    YourVariable = YourVariable.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, "+$1 ($2)-$3-$4"); 
显示:+1(800)-555-5555

显示器(555)-555-5555

If语句(我自己的代码):


+1-只需一个注释,您就可以进一步细化它:
str.replace(/(\d{3})(\d{3})(\d{4})/,'($1)$2-$3')这只适用于美式电话号码。英国和其他欧洲国家的数字格式不同。hersh-在你的评论消失之前,我刚刚看到了你的评论,所以我想你已经明白了。我不知道您使用的是哪种类型的元素,但我想如果您使用
$(this).text()
)获得原始值,您应该能够以相同的方式分配新值<代码>$(此).text(formatPhoneNumber)
patrick-是的,我找到了,谢谢你回复我。
var str = "0000000000";

var res = str.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, '($1)$2-$3');

alert(res);
var res = str.replace(/(\d{3})(\d{3})(\d{4})/, '($1)$2-$3');
    YourVariable = YourVariable.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, "+$1 ($2)-$3-$4"); 
    YourVariable = YourVariable.replace(/(\d{3})(\d{3})(\d{4})/, "($1)-$2-$3"); 
if (form.FaxNumber.length = 11){
    form.FaxNumber.value = form.FaxNumber.value.replace(/(\d{1})(\d{3})(\d{3})(\d{4})/, "+$1 ($2)-$3-$4");
}
if (form.FaxNumber.length = 10){
    form.FaxNumber.value = form.FaxNumber.value.replace(/(\d{3})(\d{3})(\d{4})/, "($1)-$2-$3");
}