2011-10-27 162 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