2016-11-22 30 views
-1

我有一個留言箱,並希望在郵件中突出顯示一個用戶名。上留言是這樣的:JavaScript從一個特定的字符串獲得一個字符串到一個空間

<dl id="sbPosts"> 
       <dt data-id="1780530" data-user="username"> 
        <a href="user/username" class="user">username</a> 
        <time>00:00:00</time> 
       </dt> 
       <dd data-id="1780530" data-user="username"> 
        @username text without highlight 
       </dd> 
       <dt data-id="1780530" data-user="username"> 
        <a href="user/username" class="user">username</a> 
        <time>00:00:00</time> 
       </dt> 
       <dd data-id="1780530" data-user="username"> 
        @username text without highlight 
       </dd> 
       <dt data-id="1780530" data-user="username"> 
        <a href="user/username" class="user">username</a> 
        <time>00:00:00</time> 
       </dt> 
       <dd data-id="1780530" data-user="username"> 
        @username text without highlight 
       </dd> 
       <dt data-id="1780530" data-user="username"> 
        <a href="user/username" class="user">username</a> 
        <time>00:00:00</time> 
       </dt> 
       <dd data-id="1780530" data-user="username"> 
        @username text without highlight 
       </dd> 
</dl> 

我只想強調在此之後,「@」和文本,以這樣的第一空間:「@skuhlight什麼你的問題」

在上留言我想補充一個跨度各地的用戶名是這樣的:

<dd data-id="1780530" data-user="username"> 
    <span class="highlight">@username</span> text without highlight 
</dd> 

這裏是我試過的代碼...

function highlight(username) { 
    var element = $('#sbPosts > dd'); 
    var rgxp = new RegExp(username, '@'); 
    var res = str.substr(username, ' '); 
    var repl = '<dd><span class="highlight">' + username + '</span>'; 
    element.html(element.html().replace(username, repl)); 
} 
+0

請檢查[問]並更新您的問題以包含[mcve]。因爲它代表着你的問題,因爲你沒有顯示任何你已經嘗試過的代碼,所以你把它當作工作單。 – zzzzBov

+1

請發佈您到目前爲止所嘗試的內容。 –

回答

0

試試這個:

function getMatches(input){ 
    var patt = /@\w+/g; 
    return input.match(patt); 
} 

var arr = getMatches("@paper asdsdsds"); 
var element = $('#sbPosts > dd'); 
for(var i = 0; i < arr.length; i++){ 
    var txt = arr[i]; // Text to go inside <span> 

    element.html(element.html().replace(txt, '<span class="highlight">' + txt + '</span>')); 
} 

函數在輸入中搜索匹配項,而小代碼段將幫助爲每個匹配項生成元素。

+0

感謝您的回答!這代替了第一個孩子的DD。所以它不工作..我會編輯我的帖子,以更好地顯示即時通訊嘗試.. – sKuhLight

相關問題