2012-08-28 3 views
1

"/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d"과 같은 UR1이있는 경우 URL 클라이언트 측에서 ID "2c02ds92-25cb-43e1-9bba-3bd5604a0a3d"을 얻는 가장 좋은 방법은 무엇입니까?URL 클라이언트 측에서 ID를 가져 오는 방법은 무엇입니까?

은 내가 ID와 $.getJSON 요청을 구축 할 수 있어야하고 나는 등 감사

$.getJSON('/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d')... 
+1

이것은 매우 기본입니다. 문자열에서'.split' 함수를 찾으십시오. – pimvdb

+0

은 현재 URL (런타임시 주소 표시 줄에있는 것과 같습니다)이거나 텍스트 어딘가 또는 코드의 URL입니까? – SpYk3HH

+0

가장 쉬운 방법은'.lastIndexOf' 또는'-1에서 시작하는 문자열을 가진'indexOf '를 사용하고'url.substring (lastFwdSlashIndex + 1)' –

답변

1

, 당신은 split를 사용

var url_array = document.location.split('/'); 
var id = url_array[url_array.length - 1]; 
1

사용 regular expressions 자바 스크립트, jQuery를 사용하여 그것을 할 가장 깨끗한 방법을 찾고 적절한를 추출하고있어 부분 (UUID 인 것 같습니다)을 URL에서 가져옵니다.

대체 방법은 문자열을 /으로 분할하고 마지막 요소를 가져 오는 것입니다.

편집 다음 URI에서 UUID를 검색하는 방법에 대한 예 : 일치

var url = '/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d'; 

var pattern = /[\da-f]{8}\-[\da-f]{4}\-[\da-f]{4}\-[\da-f]{4}\-[\da-f]{12}/; 
var match = url.match(pattern)[0]; 

url.match(pattern) 반환 배열을, 그래서 적어도 하나, 단 하나의 일치하는 항목이 가정, 당신은 (그것을 선택해야 예에서와 같이 [0]을 사용하십시오.

증명 : http://jsfiddle.net/p6zud/2/

EDIT 2 : 단축 매칭에 사용되는 패턴 (비교 업데이트 기록 참조). ID가 항상 URI의 마지막 부분이 될 것입니다 경우

+0

아주 일반적인 정규식 예제는 다음과 같습니다. "/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d".match(/^\/api\/User\/Details) \/(. +) $ /) [1] – trueunlessfalse

+0

@trueunlessfalse : 정규 표현식을 사용하지 않아도 무의미합니다. 문자열의 위치에 관계없이 올바른 형식과 일치하는 경우에만 압축을 풀려면'[0-9a-f] {8} \ - [0-9a-f] {4} \ - [ 0-9a-f] {4} \ - [0-9a-f] {4} \ - [0-9a-f] {12}'(예제에서 UUID를 제시한다고 가정하면'2c021192 -25cb-43e1-9bba-3bd5604a0a3d'). – Tadeck

0

뭔가를 할 매개 변수의 배열에 URL을 변환 할 수 있습니다. 귀하의 경우 마지막 배열 항목은 귀하의 ID입니다.

javascript를위한 매우 정교한 URL 파서가 있습니다. 아마도 사용자의 요구에 맞는 하나의 Google을 찾아야 할 것입니다.

0

alert("/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d".split('/').slice(-1)[0]); 
0

simpliest보십시오 :

var id = '/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d'.split('/User/')[1]; 

당신에게 2c021192-25cb-43e1-9bba-3bd5604a0a3d를 제공을;

관련 문제