JavaScript/Jquery Regexp Replace

私は自分のサイトのためのホバーカードプラグインをやっていますが、ユーザーIDの取得に問題があります。

プロフィールのURLは可能です。

hxxp://mysite.com/?p=profile&id=1
hxxp://mysite.com/?p=profile&id=1&page=2
hxxp://mysite.com/?p=profile&id=1&v=wall

等..

どうすればjavascript Regexp ReplaceによってプロファイルのIDを取得できますか?

    $(document).ready(function() {
    var timer;
    $('a[href*="hxxp://mysite.com/?p=profile"]').hover(
        function() {
            if(timer) {
                clearTimeout(timer);
                timer = null
            }
            timer =  setTimeout(function() {

             //profile_id
             //and get id's hovercard content here

            },1000);
        }, 
        function() {
            if(timer) {
                clearTimeout(timer);
                timer = null
            }
            $('.HovercardOverlay').empty();
        }
        );
}); 
0

3 答え

var result = $(this).attr("href").match(".*profile&id=(\d+)&?.*")
var id = result[1]

This has been tested on http://www.regular-expressions.info/javascriptexample.html

2
追加された
* はMarkdownが書式設定に使用しているため表示されません。エディターに大きなオレンジ色の疑問符のアイコンがあり、編集の助けになります。
追加された 著者 mu is too short,
なぜスターは表示されません。正規表現は "。* profile&(\ d +)&?"でなければなりません。
追加された 著者 ComfortablyNumb,
私はここには新しい、ありがとう。
追加された 著者 ComfortablyNumb,

私は次のようにします:

var url = "hxxp://mysite.com/?p=profile&id=1&v=wall";//this.href or w/e
var paramsArray = url.match("[?].*")[0].substr(1).split("&");
var params = {};
for (var i in paramsArray)
{
    var parts = paramsArray[i].split("=");
    params[parts[0]] = parts[1];
}

Then to get the id it's as simple as params.id

1
追加された

現在のリンクのURLを取得する方法は次のとおりです。

$('a[href*="hxxp://mysite.com/?p=profile"]').hover(
    function() {
        if(timer) {
            clearTimeout(timer);
            timer = null
        }
        timer =  setTimeout(function() {

         //profile_id
          var myUrl = $(this).attr("href");

         //and get id's hovercard content here

        },1000);
    }, 

そして正規表現にマッチさせる:

> var myUrl = "hxxp://mysite.com/?p=profile&id=5";
> var pattern = new RegExp("id=([0-9]+)");
> pattern.exec(myUrl);
["id=5", "5"]
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript