2011-04-12 5 views
1

저는 JS 전문가가 아니지만 다음 스 니펫에서 유효하지 않은 수량 한정 오류를 찾는 데 도움을 줄 수 있습니까?Javascript - 수량 한정어 오류가 잘못되었습니다. 누군가 내 실수를 볼 수 있도록 도와 줄 수 있습니까?

미리 감사드립니다! -mprototype

function $_GET(q,s) { 
     s = s ? s : window.location.search; 
     var re = new RegExp('&' + q + '(?:=([^&]*))?(?=&|$)' , 'i'); 
     return (s=s.replace(/^?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined; 
    } 
+0

무엇을해야할까요? '/ ^? /'? 그것은 나에게 준다 * SyntaxError : 유효하지 않은 정규 표현식 :/^?/: 반복 할 것이 없다 *. 그리고 아마도 함수가 무엇을해야하는지 설명 할 수 있습니다. –

+1

?를 이스케이프해야하거나 검색 문자열에서 스트립해야합니다. -s = s || window.location.search.substring (1); – kennebec

+0

이 함수는 var var1 = $ _GET ('key')와 같이 사용되어 javascript에서 get var를 사용한다고 가정합니다. – none

답변

1

? 구체적으로는 앞의 항목이 선택한다, 정규 표현식에서 특별한 의미를 갖습니다. 물음표 문자 자체를 찾으려면 백 슬래시로 이스케이프 처리해야합니다.

function $_GET(q,s) { 
     s = s ? s : window.location.search; 
     var re = new RegExp('&' + q + '(?:=([^&]*))?(?=&|$)' , 'i'); 
     return (s=s.replace(/^\?/,'&').match(re)) ? (typeof s[1] == 'undefined' ? '' : decodeURIComponent(s[1])) : undefined; 
    } 
+0

입력 해 주셔서 감사합니다. – none

+0

성공, 당신은 남자 야. – none

관련 문제