【问题标题】:Hightlight numbers in phone number突出显示电话号码中的数字
【发布时间】:2011-12-16 12:42:49
【问题描述】:

此函数突出显示数字。

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 怎么办? 当然功能不能正常工作。我们该如何解决?

Hightlight 意味着将数字包装在标签 或其他东西中。见http://jsfiddle.net/QhJWt/3/

【问题讨论】:

  • 抽象这个。如何突出显示子字符串?它是一个电话号码的事实并不重要。存在更通用的解决方案。
  • 这个函数应该做什么? “突出数字”是什么意思?

标签: javascript phone-number


【解决方案1】:
function hightlightPhoneNumbers(phoneNumber, clip) {
    var re = new RegExp(clip.split('').join('[\\s-]*'), 'gi');
    return phoneNumber.replace(re, '<b>$&</b>');
}

顺便说一句,String.prototype.bold 有一个有趣的非标准方法,它将字符串包装到 &lt;b&gt;&lt;/b&gt; 标记中。

Demo.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2011-09-03
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多