1

プレーンテキストの文内で Twitter ハンドル (ハンドルと呼ばれていると思います..) を識別し、ハンドルの周りにスパン タグをラップするのに助けが必要です。

したがって、次のように構成された文があるとします。

I can't wait to watch the 2012 London Olympic Games! @london2012

ハンドルを見つけて、その周りにスパン タグをラップする必要があります。

I can't wait to watch the 2012 London Olympic Games! <span>@london2012</span>

これが私が試みたものです:

function findHandle(text) {
    var handle = text.substr(text.indexOf("@"), text.indexOf(" "));
    return text.replace(handle, "<span>" + handle + "</span>");
}

コードが計画どおりに機能しません。これに対する最善のアプローチは何ですか?

4

1 に答える 1

6

テキストコンテンツが要素内にあると仮定するとdiv、次のように動作するようです (ただし、徹底的にテストされていません):

$('div').html(
    function(i,html) {
        return html.replace(/@[\d\D]+\b/g, '<span>$&</span>');
    });​

JS フィドルのデモ

上記は少し壊れやすいように見えたので、正規表現セレクターを次のように変更しました。

$('div').html(
    function(i,html) {
        return html.replace(/(@\w+)/g, '<span>$&</span>');
    });​

JS フィドルのデモ

参考文献:

于 2012-08-07T19:46:27.443 に答える