2011-10-27 50 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>'); 
} 

を参照してください、<b></b>タグに文字列をラップString.prototype.boldのこの変な非標準的な方法があります。

Demo

+0

素晴らしい作品です。ありがとう! – Neir0