URLを読み取るJQueryは文字Aを読み取らない

私は、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インスペクタショー(user_name変数を見てください)

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

Another 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

これは、非常に奇妙な、任意のアイデアですか?

0
nl ru de
私が完全に間違っていないとすれば、あなたの正規表現は?&a m p または; の文字のすべてを意味します。
追加された 著者 J. Steen,

1 答え

正規表現を次のように変更してみてください。

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

Demo: Fiddle

2
追加された
var regsql( '[\\?&]' + name + '=([^&#] *)')。exec()このように変更されたURLが好きではありません。 window.location.href);
追加された 著者 Darren Sweeney,
@ J.Steenありがとう、削除
追加された 著者 Arun P Johny,