Высокие цифры в номере телефона

#javascript #phone-number

#javascript #телефонный номер

Вопрос:

Это функция высоких цифр.

 var hightlightPhoneNumbers = function(phoneNumber, hNumbers) {
  var splitPhoneNumber = phoneNumber.split(hNumbers);
  var result = '';

  if (splitPhoneNumber.length > 1) {
    for (var i = 0; i < splitPhoneNumber.length - 1; i  ) {
      result  = splitPhoneNumber[i]   '<b>'   hNumbers   '</b>';
    }
    return result   splitPhoneNumber[splitPhoneNumber.length - 1];
  }
  return phoneNumber;
};
  

И мы можем использовать его как hightlightPhoneNumbers(' 123456789','123') .

Но у нас есть небольшая проблема. Что, если номер телефона выглядит как 1 234-567-89? Конечно, функция работает неправильно. Как мы можем это исправить?

Высокий свет означает перенос чисел в теги или что-то в этом роде. смотрите http://jsfiddle.net/QhJWt/3 /

Комментарии:

1. Абстрагируйтесь от этого. Как вы можете выделить подстроку? Тот факт, что это номер телефона, не имеет значения. Существует более общее решение.

2. Что должна делать функция? Что означает «выделение чисел»?

Ответ №1:

 function hightlightPhoneNumbers(phoneNumber, clip) {
    var re = new RegExp(clip.split('').join('[\s-]*'), 'gi');
    return phoneNumber.replace(re, '<b>$amp;</b>');
}
  

Кстати, есть такой забавный нестандартный метод String.prototype.bold , который обертывает строку в <b></b> тег.

ДЕМОНСТРАЦИЯ.