将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中显示?
如果您说要在客户端进行此操作,那么在变量中给出电话号码,您可以这样做:
var str = "0000000000"; var res = '(' + str.substr(0,3) + ')' + str.substr(3,3) + '-' + str.substr(6); alert(res);
或这个:
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"); }