2014-01-14 4 views
0

나는 http://www.somedotcom.com/all/~childrens-day/pr?sid=all과 같은 URL을 가지고 있습니다.JavaScript에서 URL에서 특정 텍스트를 추출하는 방법

나는 childrens-day를 추출하고 싶습니다. 어떻게 구할 수 있니? 지금이 일을하고있다.

url = "http://www.somedotcom.com/all/~childrens-day/pr?sid=all" 
url.match('~.+\/'); 

하지만 내가 얻는 것은 ["~childrens-day/"]이다.

["~/"]없이 childrens-day없이 위의 텍스트를 얻을 수있는 짧고 달콤한 방법이 있습니까?

감사합니다.

답변

2

character class 및 캡처 그룹 ()을 부정하고 그룹 #1을 캡처를 참조하십시오. 문자 클래스 [ ] 안에있는 캐럿 (^)은 부정 연산자로 간주됩니다.

var url = "http://www.somedotcom.com/all/~childrens-day/pr?sid=all"; 
var result = url.match(/~([^~]+)\//); 
console.log(result[1]); // "childrens-day" 

Working demo

를 참조하십시오 : 당신은 당신이 아닌 욕심 경기를 위해 ? 한정 기호를 추가 할 수있는 문자열의 내부에 많은 URL의의가있는 경우.

var result = url.match(/~([^~]+?)\//); 
+0

이 부정합은 무엇입니까? –

+1

수정 된 답변보기 – hwnd

2

과 같이 :

var url = "http://www.somedotcom.com/all/~childrens-day/pr?sid=all" 
var matches = url.match(/~(.+?)\//); 
console.log(matches[1]); 

근무 예 : 당신이 결과를 얻었는지 정규 표현식이 실제로 제대로 하나 확실하지 않은 구분되지 않은 http://regex101.com/r/xU4nZ6

주 너는 그랬다.

+0

이 링크를 공유해 주셔서 감사합니다. http://regex101.com/r/xU4nZ6 나는이 사이트를 처음 접하는 분이라 생각합니다. –

+0

당신은 내가 얻은 표현이 내가보고했던 것과는 달랐습니다. 사과 나는 나 자신을 바로 잡았다. –

+1

그래도이게 네가 원하는대로하는거야. 그게 다 중요해. :) – brandonscript

1

사용 비 캡처 캡처 그룹과 그룹 것은 다음 경기 배열의 [1] 요소에 액세스 :

(?:~)(.+)(?:/) 

당신이 탈출해야합니다 명심 당신의 / 당신의 정규식 구분 기호로 또한 그것을 사용하는 경우.

관련 문제