Цифрові номери в телефонному номері

Це функція високих світлових чисел.

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] + '' + hNumbers + '';
    }
    return result + splitPhoneNumber[splitPhoneNumber.length - 1];
  }
  return phoneNumber;
};

І ми можемо використовувати його як hightlightPhoneNumbers ('+ 123456789', '123') .

Але у нас є невелика проблема. Що робити, якщо номер телефону виглядає як +1 234-567-89? Звичайно функція не працює правильно. Як ми можемо це виправити?

Hightlight means wrap numbers in tags or something. see http://jsfiddle.net/QhJWt/3/

1
Анотація цього. Як можна виділити підрядок? Те, що це номер телефону, не має значення. Існує більш загальне рішення.
додано Автор Incognito, джерело
Що повинна робити функція? Що означає "виділення номерів"?
додано Автор Alex Turpin, джерело

1 Відповіді

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

До речі, є такий смішний нестандартний метод: .prototype.bold , який переносить рядок у тег .

Demo.

2
додано
Працює відмінно. Дякую!
додано Автор Neir0, джерело
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram