2011-10-27 79 views
1

此功能高亮号码。电话号码中的高亮号码

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/

+1

摘要。你怎么能突出一个子串?这是一个电话号码并不重要。存在更一般的解决方案。 – Incognito

+0

应该做什么功能? “突出显示数字”是什么意思? –

回答

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

顺便说一句,有一个String.prototype.bold一个封装了字符串转换为<b></b>标签这个有趣的非标准方法。

Demo

+0

工程很好。谢谢! – Neir0