javascript
  • regex
  • 2014-04-22 3 views -1 likes 
    -1

    내가 참조하는 URL과 앵커 HTML 태그에서 텍스트 추출이 정규식이 : 자바 스크립트 정규식/X 수정

    /<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x 
    

    그러나 내가 자바 스크립트에서 작동하지 않는 /x 수정 을 발견합니다.

    내 의도는 다음을 수행 하였다

    var str = '<a href="http://google.com" rel="nofollow">Google</a>'; 
    var msg = str.replace(/<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x, function ($0, $1){ 
        return 'Hello my name is ' + $1 + 'and my Homepage is: ' + $0; 
    }); 
    
    console.log(msg); 
    // should print 'Hello my name is Google and my Homepage is http://google.com' 
    

    이것은 앵커 태그 내부에 다른 속성을 지원합니다.

    어떤 아이디어가 /x 동작을 달성하는 방법?

    +0

    당신은 왜 필요합니까? 여기에 불필요한 것 같습니다. – BoltClock

    +0

    how/x가 여기에 무엇을 바꿀지는 모르겠다. (무엇을 기대 하느냐?) – njzk2

    +0

    이것은 잘못된 사용 예이다. 간단히 말해서 URL과 이름 인 2 개의 값을 추출해야합니다. – jonathanwiesel

    답변

    1
    var str = '<a href="http://google.com" rel="nofollow">Google</a>'; 
    var myregexp = /<a.*?href=["'](.*?)["'].*?>(.*?)<\/a>/g; 
    var result = str.replace(myregexp, "Hello my name is $2 and my Homepage is $1"); 
    

    http://jsfiddle.net/tuga/97c9x/3/

    +0

    왜 [[ " ']'를'["|']'로 변경 했습니까? 이제는 큰 따옴표, 파이프 또는 작은 따옴표와 일치합니다. 나는 그것이 OP가 원했던 것이 아니라고 확신한다. ;) –

    +0

    @AlanMoore 내 잘못! 이미 변경됨, tks :) –

    관련 문제