javascriptの相談です。

jQueryとjfeedプラグインを利用して、twitteのフィードを表示させようと思っています。
現状:http://dtf.xsrv.jp/rss.html

2009/07/22:masahumi: 投稿テストその2
2009/07/22:masahumi: 投稿テスト

の表示の名前(masahumi: )を削除したいのですが、よい方法を教えてください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/07/22 19:51:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:miyamuko No.2

回答回数29ベストアンサー獲得回数11

ポイント100pt

feed の <link> 内の URL からアカウント名を取り出して (var account = ...)、

正規表現にコンパイルします (var re = ...)。

その正規表現を渡して changeTitle で名前を削除するとよいと思います。



function initRSSFeed(){
    jQuery.getFeed({url:'/common/scripts/jquery/proxy.php?url=http://twitter.com/statuses/user_timeline/59070204.rss',success:onComplete});
    function onComplete(feed) {
        var account = feed.link.match("http://twitter.com/(.+)")[1];
        var re = new RegExp("^" + account + ": ");
        var temp = '<ul>';
        for(var i = 0; i < feed.items.length && i < 10; i++) {
            var item = feed.items[i];
            temp += '<li>'+changeDate(item.updated)+':';
            temp += '<a href="' + item.link + '">' + changeTitle(re, item.title) + '</a></li>';
        }
        temp += '</ul>';
        jQuery('#twitter').append(temp);
    }
}

//表示の名前(masahumi: )を削除
function changeTitle(re, title){
    return title.replace(re, "")
}
id:Studio101

わお!

完璧です。ありがとうございました。

http://dtf.xsrv.jp/rss_2.html

2009/07/22 19:44:38

その他の回答2件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント23pt

replace メソッドで置換してはどうでしょう。

下記スクリプトを参考にしてください。

<script type="text/javascript" language="JavaScript">
<!--
var sour = "2009/07/22:masahumi: 投稿テストその2";
dest = sour.replace(/^(.*)masahumi: (.*)$/, "$1$2");
alert(dest);
//-->
</script>
id:Studio101

ありがとうございます。

ソース見ていただければ分かるかもしれませんが、文字列がjfeedからその都度受け取るんですよね。ソースのfunction changeDate(str){}みたいな感じで、function changeTitle(str){}なんて無理ですかね。

2009/07/22 19:06:00
id:miyamuko No.2

回答回数29ベストアンサー獲得回数11ここでベストアンサー

ポイント100pt

feed の <link> 内の URL からアカウント名を取り出して (var account = ...)、

正規表現にコンパイルします (var re = ...)。

その正規表現を渡して changeTitle で名前を削除するとよいと思います。



function initRSSFeed(){
    jQuery.getFeed({url:'/common/scripts/jquery/proxy.php?url=http://twitter.com/statuses/user_timeline/59070204.rss',success:onComplete});
    function onComplete(feed) {
        var account = feed.link.match("http://twitter.com/(.+)")[1];
        var re = new RegExp("^" + account + ": ");
        var temp = '<ul>';
        for(var i = 0; i < feed.items.length && i < 10; i++) {
            var item = feed.items[i];
            temp += '<li>'+changeDate(item.updated)+':';
            temp += '<a href="' + item.link + '">' + changeTitle(re, item.title) + '</a></li>';
        }
        temp += '</ul>';
        jQuery('#twitter').append(temp);
    }
}

//表示の名前(masahumi: )を削除
function changeTitle(re, title){
    return title.replace(re, "")
}
id:Studio101

わお!

完璧です。ありがとうございました。

http://dtf.xsrv.jp/rss_2.html

2009/07/22 19:44:38
id:Cherenkov No.3

回答回数1504ベストアンサー獲得回数493

ポイント100pt
temp += '<a href="' + item.link + '">' + changeTitle(item.title) + '</a></li>';

function changeTitle(str){
var s = ": ";
var p = str.indexOf(s);
return str.slice(p + s.length);
}
id:Studio101

こちらも完璧です。ありがとうございました。

http://dtf.xsrv.jp/rss_3.html

2009/07/22 19:50:06
  • id:Studio101
    jfeedのページはこちらです。
    http://www.hovinne.com/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin
  • id:Studio101
    ソースは以下のものです。

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>jQuery</title>
    <script type="text/javascript" src="/common/scripts/jquery/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="/common/scripts/jquery/jquery.jfeed.pack.js"></script>
    <script type="text/javascript">
    <!--
    function initRSSFeed(){
    jQuery.getFeed({url:'/common/scripts/jquery/proxy.php?url=http://twitter.com/statuses/user_timeline/59070204.rss',success:onComplete});
    function onComplete(feed) {
    var temp = '<ul>';
    for(var i = 0; i < feed.items.length && i < 10; i++) {
    var item = feed.items[i];
    temp += '<li>'+changeDate(item.updated)+':';
    temp += '<a href="' + item.link + '">' + item.title + '</a></li>';
    }
    temp += '</ul>';
    jQuery('#twitter').append(temp);
    }
    }

    //日付表記を変換
    function changeDate(str){
    var myDate=new Date(str);
    var YYYY=myDate.getFullYear();
    var MM=myDate.getMonth()+1;
    if(MM<10){MM="0"+MM;}
    var DD=myDate.getDate();
    if(DD<10){DD="0"+DD;}
    var date=YYYY+"/"+MM+"/"+DD;
    return date;
    }

    //-->

    </script>

    </head>
    <body onLoad="initRSSFeed();">
    <div id="twitter"></div>
    </body>
    </html>
  • id:Studio101
    回答ポイントをお送りする方法がよくわからないので、しばしおまち下さい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません