2013-06-12 2 views
0

안녕하세요. @mentions를 링크로 구문 분석하는 스크립트가 있지만,이 링크는 두 번 이상로드해야하며 현재 링크로 파싱되어 있으므로 파싱해야합니다. 이미 태그에 싸여있는 @mentions 무시하지만 작동하도록 볼 수 없습니다. /((?:^|[^a-zA-Z0-9_!#$%&*@@]|RT:?))([@@])([a-zA-Z0-9_\.]{1,20})(\/[a-zA-Z][a-zA-Z0-9_-]{0,24})?/g링크에서 래핑 된 @mentions을 무시하십시오.

예 문자열은 다음과 같습니다 :

내가 지금까지 무엇을 가지고

Hi @andre Hi <a href="">@jane</a> 

@andre@jane 같은 태그 인에 싸여되어야하고, @jane는 태그 <a href="">@jane</a> 이미 무시해야합니다.

+0

는 예를 들어 문자열을주십시오. 당신의 그림은 더 좋다 –

+0

당신은 예상되는 인풋과 아웃풋을 제공해야한다. 또한 왜 정규식이 작동하지 않습니다. – acdcjunior

+0

그래서'([@@]) ([a-zA-Z0-9 _ \.] {1,20})'이'@ mention'이고,'wrapped ' @ whatever'을'... @ whatever'으로 감싼다면, ''뒤에 오는'@ mention' 만 얻는 것으로는 충분하지 않을까요? 그렇다면이 정규식은 다음과 같이 작동합니다.'(?! ([@@]) ([a-zA-Z0-9 _ \.] {1,20})) Z0-9 _ \.] {1,20})'. – acdcjunior

답변

1

설명

이미 <a href="">@jane</a>

정규식 (?!>)([@@])([a-zA-Z0-9_\.]{1,20})\b(?!<)

처럼 내부 포장되지 않은 벌거 벗은 @names을 캡처이 정규식 <a href="">$0</a>

enter image description here

입력 텍스트로 교체 :,

출력 텍스트 : Hi <a href="">@andre</a> Hi <a href="http://some.url">@jane</a>

0

이 질문의 이유는 @mentions를 링크로 즉시 변환했기 때문이며 대체 할 @mentions가있는 추가 콘텐츠를로드하고 있었기 때문입니다. 내가 문제를 일으키는 모든 경기를 연결하는 linkify 함수를 실행하고 있었다.

의견에 제공된 답변을 얻을 수 없어서 다른 접근 방식을 시도했습니다.

(정적 버튼 이전에) 추가 콘텐츠가 추가되는 곳을 알고 있으므로 jquery 슬라이스 기능을 사용하여 해당 기능을 실행할 요소를 선택했습니다.

var linkify = $('.user-profile-feed-item').slice(-4).find('.linkify'); 

이 방법을 사용하면 추가 정규식 필터링을 사용하지 않고도 필요한 기능 만 실행할 수 있습니다.

관련 문제