2011-07-26 5 views
0

정규식을 사용하여 찾기 및 바꾸기를 시도하고 첫 번째 (이 경우에만) 역 참조를 변수로 가져옵니다. http://foo.bar.net/interestingbit/lots/of/other/stuff/here어떻게 자바 스크립트 정규 표현식에서 역 참조를 사용합니까?

으로 경고 하였다 : http://foo.bar.net/interestingbit/

모두 경보 초기화 최초로 테스트 변수 값을 포함

var RegexSearchString = "/((?:^(?:https?://|www\\d{0,3}[.])(?:.*?/)|(?:[a-z0-9.\\-]+[.][a-z]{2,4}/))(?:.*?/))/"; 
var test = "http://foo.bar.net/interestingbit/lots/of/other/stuff/here"; 
alert(test); 
test.replace(umassURLRegexSearchString, "$1"); 
alert(test); 

예상 결과

에 경고와 함께한다. 이것에 대한 아이디어는 무엇입니까?

답변

0

을 수행해야합니다

  1. 새로운 캡처 그룹
  2. 지정 이전에 정규식에 나머지
  3. 이동에서 경로 끝에 괄호를 첫 번째 폴더를 분리 할 수있는 새로운 캡처 그룹을 추가 정규식의 결과는 다시 정규식

A의 코드를에서/모든 문자를

  • 탈출을 테스트 이러한 변화의 LL은 다음과 같습니다

    var RegexSearchString = /^((?:(?:https?:\/\/|www\d{0,3}[.])(?:.*?\/)|(?:[a-z0-9.\-]+[.][a-z]{2,4}\/))(?:.*?\/))(?:.*?\/)*/; 
    var test = "http://foo.bar.net/interestingbit/lots/of/other/stuff/here/"; 
    alert(test); 
    test = test.replace(RegexSearchString, "$1"); 
    alert(test); 
    

    여기에서 체크 아웃 : 이것은 나를 위해 작동하지 않습니다 http://jsfiddle.net/jheHR/1/

  • +0

    . 그것은 더 많은 URL을 포착하게됩니다. 그 링크에 따르면 원래 게시물의 정규식은 괜찮지 만 보이는 캡처 그룹을 참조 할 수 없습니다. –

    +0

    죄송합니다. 리뷰를 작성해야 할 몇 가지 변경 사항을 발견했습니다. –

    +0

    모든 것이 완벽하게 작동합니다. . 당신의 도움을 주셔서 감사합니다! –

    관련 문제