2011-10-06 2 views
2

URI의 마지막 부분의 특정 부분을 얻는 데 필요한 몇 가지 URL이 있습니다.Javascript를 사용하여 URL의 특정 부분 가져 오기

URL www.test.co/index.php/government-printer-sales.html이 있으면 URL에서 government 만 가져올 필요가 있습니다. 모든 URL의 구조가 같아서 management

var str = document.URL.split('/'); 
var type = str[5].split('-',1); 

어떤 결과를 얻을 수 있지만 더 나은 방법이 있다고 확신합니다. . 어쨌든 나는 eiter mootools 또는 평범한 자바 스크립트

에서 이것을 얻을 수있다.
+0

실제 URL인가요? 단지 두 개의 슬래시가있는 경우 분리 된 문자열의 인덱스 '5'에 액세스하는 이유는 무엇입니까? – pimvdb

+0

@pimvdb - 예를 들어 두 개의 대시가 더있을 수 있습니다. – Roland

답변

3

당신은 마지막 슬래시 후 첫 번째 대시하기 전에 문자열을 뽑아 정규 표현식을 사용할 수

var regex = /\/([^/\-]+)[^/]*$/; 
var matches = regex.exec('www.test.co/index.php/government-printer-sales.html'); 
var type = matches[1]; // government 
3

당신은 here 볼 수 있습니다 다음 here하고이 코드를 확인 :

var myString = "www.test.co/index.php/government-printer-sales.html"; 
var myRegexp = /(www.test.co\/index.php\/)(\w+)-(.)*/g; 
var match = myRegexp.exec(myString); 
alert(match); 
3

접속자 배열의 끝에서부터 카운트 요소와 새로운 배열을 생성 할 첫 번째 인수로 음수 전달 다양한 함수이다.

document.URL 
> "http://stackoverflow.com/questions/7671441/getting-a-specific-part-of-a-url-using-javascript" 

document.URL.split('/').splice(-1)[0].split('-')[0] 
> "getting" 

파이썬의리스트 접합 LST의 유사하다 [: - 1]

2

이 시도 :

var type = window.location.pathname.match(/index.php\/([^-]+)(?:-)/)[1]; 

그것은 하이픈을 제외 index.php/ 다음 모든 문자를 검색하지만, 한 다음에 하이픈을 입력하고 그 사이의 값을 가져옵니다.

관련 문제