2012-11-27 4 views
0

안녕하세요, 저는 오래된 링크를 일반 URL로 대체하여 질문을 연결합니다. 제이크 로버슨의 코드 인 link35를 에서 사용하고 있습니다. 그러나 pseudo urls (www.)를 지원하지 않으므로 다른 정규식과 함께 추가하려고합니다. 은 지금까지 나는 텍스트는 HTML 태그가 될 수있는이링크를 대체 할 정규 표현식

var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim; 
    text.replace(pseudoUrlPattern, '$1<a target="_blank" href="http://$2">$2</a>') 

와 붙어있어, 및 링크가 어떤 공간없이 닫는 p 태그가있는 경우는 링크의 것을 포함하는 것! 나는 앞으로 찾아보기를 시도했다 그러나 맞은 그것을 얻지 않았다는 것을 보인다. 예제 텍스트가 될 것이다

<p>www.something.here/something</p> 

답변

0

어떻게 이런 일에 대해 :

var text = "<p>www.something.here/something</p>"; 
var replacePattern2 = /(.*?)(((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w][email protected])?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w][email protected])[A-Za-z0-9.-]+))((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/gim; 
text.replace(replacePattern2, '$1<a target="_blank" href="$4">$4</a>') 

이 정규식을 바탕으로 : http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the.

+0

안녕하세요, 고맙습니다. www.something.com은 도메인/www.something.com이 아닌 http///에 대한 링크가됩니다. 프로토콜이없는 경우 http를 추가하고 싶습니다. 그렇지 않으면 필요합니다. 텍스트에있는 것을 사용하십시오. 또한 [email protected]에서 domain /[email protected]으로 이메일을 변경합니다. – Yun

+0

전자 메일 지원을 제거하면 작동하는 것으로 생각됩니다. 그 후 이메일 정규식을가집니다. var emailAddressPattern = /(([a-a-AAZ0-9_\-).)+[a-zA-Z_]+?(?:\.[a-zA-Z ] {2,6})) +/gim; 내가 replacePattern2를 실행 한 후에 emailAddressPattern을 실행할 것입니다 .. 만약 우리가 어떻게 든이 둘을 결합 할 수 있다면 전자 메일 패턴을 제외하면 작동 할 것이라고 생각합니다. – Yun