отформатировать int в номер телефона - PullRequest
4 голосов
/ 27 августа 2010

Можно ли, например, отформатировать: 0000000000 в (000) 000-0000? Я возвращаю список, содержащий коллекцию телефонных номеров, которые еще не отформатированы. Я хотел бы отформатировать его. Это то, что я имею в представлении:

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

и от контроллера:

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?

Ответы [ 2 ]

6 голосов
/ 27 августа 2010

Если вы говорите, что хотите сделать это на стороне клиента, то, учитывая номер телефона в переменной, вы можете сделать это:

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

РЕДАКТИРОВАТЬ:

Как отмечено @ Ник Крейвер Вторая версия может быть сокращена до:

var res = str.replace(/(\d{3})(\d{3})(\d{4})/, '($1)$2-$3');
1 голос
/ 26 августа 2015

Так просто, как это.Можно использовать простой оператор 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 оператор (мой собственный код):

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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...