수정 전:
수정 후:
이 방법을 더 엄격하고 효율적으로 다시 작성해 준 풀뿌리 프로그래머들에게 감사드립니다. ! !
function getQueryString(url) {
if(url) {
url=url.substr(url.indexOf("?") 1); //문자열 차단, 이전 분할보다 더 좋음 () 이 방법은 매우 효율적입니다.
}
var result = {}, //이름과 값을 저장할 객체를 생성합니다.
queryString =url || location.search.substring(1), //location . 검색은 물음표(?)로 시작하는 URL(쿼리 부분)을 설정하거나 반환합니다.
re = /([^&=] )=([^&]*)/g, //일반, 특히
m
while (m = re.exec(queryString)을 사용하지 않습니다. ) { //exec() 정규식 일치, 특히
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]) //decodeURIComponent()를 사용하여 URI 디코드를 인코딩합니다.
}
결과 반환
}
// 데모
var myParam = getQueryString("www.taobao.com?key0=a&key1=b&key2=c")
Alert(myParam.key1);
참고:
1, substr() 및 substring(start,stop)은 첨자 사이에 지정된 두 문자 사이의 문자열을 추출합니다.
중요: Slice() 및 substr() 메서드와 달리 substring()은 음수 인수를 허용하지 않습니다.
http://www.jb51.net/w3school/js/jsref_substring.htm
2. location.search.substring(1), location.search가 질문에서 설정되거나 반환됩니다. 표시( ?) 시작 URL(쿼리 부분)입니다.
http://www.jb51.net/w3school/htmldom/prop_loc_search.htm
을 참조하세요. 3. exec() 메서드는 문자열에서 정규식 일치 항목을 검색하는 데 사용됩니다. 너무 강력해서 아직 사용법을 모르겠습니다
참고http://www.jb51.net/w3school/js/jsref_exec_regexp.htm
4. 인코딩된 URI 디코딩을 인코딩합니다.
http://www.jb51.net/w3school/js/jsref_exec_regexp.htm
참조