Используйте jQuery для вставки дефисов в номер телефона в полях td - PullRequest
3 голосов
/ 02 марта 2011

У меня есть таблица с набором телефонных номеров из базы данных. Я хочу вставить дефисы в номер телефона, чтобы вместо: «0000000000» пользователь увидел: «000-000-0000». Не очень хорошо в регулярных выражениях, но это то, что я пробовал до сих пор:

  $('.views-field-phone').each(function(){
      $(this).insertAfter(/(.{3})/g,"-1-")
      $(this).insertAfter(/(.{7})/g,"-1-")
  });

Ответы [ 3 ]

6 голосов
/ 02 марта 2011

возможно не оптимально, но ...

 string = string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10);

или для вашего случая ...

$('.views-field-phone').each(function(){
      var string = $(this).html();
      $(this).html(string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10)) 
});
2 голосов
/ 02 марта 2011

Вот простая функция, которую я использую для форматирования телефонных номеров, ничего особенного, но выполняет свою работу.

function formatPhoneNumber(phoneNumber) {
    var rawPhoneNumber = phoneNumber.replace("(", "").replace(")", "").replace(/-/g, "").replace(/ /g, "");
    if (isNaN(rawPhoneNumber)) {
        return null;
    }
    if (rawPhoneNumber.length == 10) {
        return "(" + rawPhoneNumber.substring(0, 3) + ") " + rawPhoneNumber.substring(3, 6) + "-" + rawPhoneNumber.substring(6, 10);
    }
    if (rawPhoneNumber.length == 11) {
        return rawPhoneNumber.substring(0, 1) + " (" + rawPhoneNumber.substring(1, 4) + ") " + rawPhoneNumber.substring(4, 7) + "-" + rawPhoneNumber.substring(7, 11);
    }
}

Контрольные примеры:

$("body").append("<h1>" + formatPhoneNumber("1234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11267890") + "</h1>");

Будет ли вывод:

<h1>(123) 456-7890</h1>
<h1>1 (123) 456-7890</h1>
<h1>undefined</h1>

Пример для jsfiddle .

0 голосов
/ 02 марта 2011

Почему вы не можете просто использовать JavaScript substr()? Если числа одинаковы, вы можете разделить их следующим образом: 3-3-4 символа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...