電話番号のハイライト番号

この関数は数値を強調表示します。

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の場合はどうなりますか? ofcourse関数は正しく動作しません。どのように修正することができますか?

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

1
追加された 編集された
ビュー: 4
これを抽象化する。部分文字列をどのように強調表示できますか?それが電話番号であるという事実は問題ではない。より一般的な解決策が存在する。
追加された 著者 Incognito,
何をすべきか? 「ハイライト番号」とはどういう意味ですか?
追加された 著者 Alex Turpin,

1 答え

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

ところで、 Stringの面白い非標準的な方法があります文字列を タグにラップする.prototype.bold

Demo.

2
追加された
よく働く。ありがとう!
追加された 著者 Neir0,