将int格式化为电话号码

有没有办法可以格式化例如:0000000000到(000)000-0000? 我正在返回一个列表框,其中包含尚未格式化的电话号码集合。 我想要的是格式化它。 这就是我在视图中的内容:

 

并从控制器:

 ViewData["phoneList"] = new SelectList(phoneList); 

编辑

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

我如何将其分配回ListBox中显示?

如果您说要在客户端进行此操作,那么在变量中给出电话号码,您可以这样做:

http://jsfiddle.net/HZbXv/

 var str = "0000000000"; var res = '(' + str.substr(0,3) + ')' + str.substr(3,3) + '-' + str.substr(6); alert(res); 

或这个:

http://jsfiddle.net/HZbXv/1/

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

编辑:

正如@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

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

显示(555)-555-5555

如果声明(我自己的代码):

 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"); }