2016-08-02 12 views
2

名前でクエリ文字列パラメータを取得する必要があります。javascriptですべての文字を含むクエリ文字列パラメータを取得する

パラメータには、「=」記号を含むすべての種類の文字が含まれます。ここで

は一例です:

http://MyProject/ResetPassword?userid=12489e2ss125-f031-4ef7d-95c9-80e894efc6a0&code=Ippr7HP/Fad2q3kKMehQtVYnbFcZp+h4ECS+RCQmN+KrcAM8N4tdeNciNEXlwkhnjF3tZgez1/a1Ca1018uXpodGEnPcyTjsfuSmyuS1hoRXY04wKLgiyW031aLAYmua8yXLDdghgjo+0s7SUD7LWFMapMP8b3eN//ycbe1QNm6RVc7ahMs77ng6i6p6MScBefU/Rnj5ME7ly7tqw==

私がすることを試みた:

function getParameterByName(name) { 
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); 
return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); 
} 

をしかし、それは空白と '+' サインを置き換える:

"Code":"Ippr7HP/Fad2q3kKMehQtVYnbFcZp h4ECS RCQmN KrcAM8N4tdeNciNEXlwkhnjF3tZgez1/a1Ca1018uXpodGEnPcyTJzsupjsfuSmyuS1hoRXY04wKLgiyW031aLAYmua8yXLDdghgjo 0s7SUD7LWFMapMP8b3eN//ycbe1QNm6RVc7ahMs77ng6i6p6MScBefU/Rnj5ME7ly7tqw==

私はそれを試してみました:

function getParameterByName(key) { 
var vars = [], hash; 
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
for (var i = 0; i < hashes.length; i++) { 
    hash = hashes[i].split('='); 
    vars.push(hash[0]); 
    vars[hash[0]] = hash[1]; 
} 
return vars[key]; 
} 

「=」記号は含まれていません...

アドバイスはありますか?

+0

後の値の部分をバックに参加する必要があり、十分に近いです。エラーをハックしようとするのではなく、それを生成しているものを修正するのはどうですか? – Quentin

+0

@Quentinこれは、パスワードをリセットするためにasp.netのIDがコードを生成する方法です。私は自分で書き込んだのではなく、システムを変更しようとしません。 – user3378165

答えて

1

あなたの第二の試みは、あなただけの基本的...あなたのクエリ文字列が正しく形成されて...だから.split('=')

function getParameterByName(parameterName) { 
    var query = window.location.search.substring(1); 
    var queryParameters = {}; 
    var vars = query.split('&'); 
    for (var i = 0; i < vars.length; i++) { 
     var keyValue = vars[i].split('='); 
     var key = keyValue[0]; 
     var value = keyValue.slice(1).join('='); 
     queryParameters[decodeURIComponent(key)] = decodeURIComponent(value); 
    } 

    return queryParameters[parameterName] 
} 
+0

ありがとうございました完全に!!ちょうど1つ、私はエラーがある: 'クエリは定義されていない'ので、私はそれを置き換えました: 'var vars = window.location.href.slice(window.location.href.indexOf( '?')+ 1).split ( '&'); 'は短くなりましたか)ありがとうございました – user3378165

+0

はい、更新された回答を参照 –

+0

完璧な作業、ありがとうございます! – user3378165

関連する問題