2016-08-02 2 views
2

이름으로 검색어 문자열 매개 변수를 가져와야합니다.자바 스크립트를 사용하여 모든 문자를 포함한 검색어 문자열 매개 변수 가져 오기

내 매개 변수에는 '='기호를 포함한 모든 문자가 포함됩니다. 내가 그 시도

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

대단히 고맙습니다. 아주!! 한가지, 오류가 발생했습니다 : '쿼리가 정의되지 않았습니다'그래서 그것을 바꿀 :'var vars = window.location.href.slice (window.location.href.indexOf ('?') + 1) .split ('&');'짧은 길이 있습니까? 고마워요! – user3378165

+0

예, 업데이트 된 답변보기 –

+0

일하는 완벽한, 고마워요 !! – user3378165