0

以下を使用して、URLから変数を抽出しています

$.urlParam = function(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}

これは数字ではうまく機能しますが、文字列で試してみると文字 A で止まります

以下のAjax呼び出し

$.ajax({
        url: apiURL,
        dataType: 'json',
        data: {page: page, user_name:$.urlParam('user')},
        success: onLoadData
    });

URL の例:

http://mypage.com/pages/gf_profile?user=DaveSmith&items=show

Firebug Inspector Shows (user_name 変数を見てください)

GET http://mypage.com/wishAPIs/profileWLAllAPI.php?page=1&user_name=D 200 OK 253ms

別の URL の例:

http://mypage.com/pages/gf_profile?user=HelenMajor&items=show

Firebug インスペクタ ショー

GET http://mypage.com/wishAPIs/profileWLAllAPI.php?page=1&user_name=HelenM 200 OK 253ms

OK の URL の例:

http://mypage.com/pages/gf_profile?user=MickBrown&items=show

Firebug インスペクタ ショー

GET http://mypage.com/wishAPIs/profileWLAllAPI.php?page=1&user_name=MickBrown 200 OK 202ms

これは非常に奇妙です。何かアイデアはありますか?

4

1 に答える 1

2

正規表現をに変更してみてください

var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url);

デモ:フィドル

于 2013-01-29T09:42:02.280 に答える