2013-11-26 4 views
0

URL 문자열을 처음 사용합니다.검색어 문자열을 url로 변환

나는 현저하게 사용자가 작성할 수있는 수많은 입력이있는 양식이 있습니다. 제출에 URL 형식은과 같이이다 :

search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26 

뭐죠/A로 = goingToArea 및 leavingOn1을 제거하고 교체 할 수있는 가장 좋은 방법은 나도 변환하는 본 적이

..Yorkshire/2013-11-26/... 

대부분의 예제를 만들기 위해 쿼리 문자열 (내 질문의 반대편)에 대한 URL 또는 URL이 아닌 JSON 객체를 반환합니다. 나는 RegEx와 jquery BBQ를 보았다. 이것들이 올바른 길입니까? 모든 제안에 도움이되는 모바일 사이트 용입니다. 감사합니다

+0

대개의 경우 서버 측에서 값을 캐치하고 원하는 값으로 변환하는 것이 훨씬 쉽습니다. – adeneo

+0

C#의 정규 표현식은 다음과 같습니다. [\?! &]. *? = – Sico

답변

1

자바 스크립트 "대체"기능과 정규식 사용 :

var urlString = "search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26"; 
    urlString = urlString.replace(/\?(.+?)=/i, '/'); 
    urlString = urlString.replace(/\&(.+?)=/i, '/'); 

    console.log(urlString); 
    // return => "search.html/Yorkshire/2013-11-26" 

첫 번째 작업은 "사이에 모든 것을 대체? " 및 "/"(시작 또는 URL)로 "=".

두 번째 작업은 "&"과 "="사이의 모든 것을 "/"(나머지 URL)로 바꿉니다.

0

당신은 사용할 수 있지만 정규식이 아닌 해결책입니다. 매우 우아하지는 않지만 작동해야합니다. JSFIDDLE DEMO

var splitted = "search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26".split('&'); 
var place = splitted[0].split('=')[1]; 
var date = splitted[1].split('=')[1]; 
console.log(place + '/' + date); 
분명히, 이것은 URL이 올바른 순서에 있다고 가정합니다. 즉, goingToArea & leavingOn1이 URL에서 교체되면 작동하지 않습니다.

0
var qs = url.substring(url.indexof('?') + 1); 
var p = qs.split('&'); 
var res = []; 
for(var i=0; i < p.length; p++) { 
var required_val = p.split('=')[1]; 
res.push(required_val); 
} 

var ans = url.substring(0, url.indexof('?')) + res.join('/'); 
관련 문제