Hightlight-nummers in telefoonnummer

Deze functie hightlight-nummers.

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

En we kunnen het gebruiken als hightlightPhoneNumbers ('+ 123456789', '123') .

Maar we hebben een klein probleempje. Wat als het telefoonnummer eruitziet als +1 234-567-89? Natuurlijk functioneert de functie niet correct. Hoe kunnen we het oplossen?

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

1
Vat dit samen. Hoe kun je een subtekenreeks markeren? Het feit dat het een telefoonnummer is, doet er niet toe. Er bestaat een algemenere oplossing.
toegevoegd de auteur Incognito, de bron
Wat moet de functie doen? Wat betekent "nummers benadrukken"?
toegevoegd de auteur Alex Turpin, de bron

1 antwoord

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

Overigens is er deze grappige niet-standaard methode van String .prototype.bold dat een string in een tag verpakt.

Demo.

2
toegevoegd
Werkt goed. Bedankt!
toegevoegd de auteur Neir0, de bron