2011-09-26 6 views
1

이 기능은 문제없이 Flash에 작성되었습니다. 그러나, 나는 지금 자바 스크립트로 그것을하려고하고 있고 나는 약간의 어려움에 처하고있다.REGEX Str 바꾸기 - 링크 텍스트 찾기 및 링크 만들기

Regex를 사용하여 링크와 비슷한 것을 찾는 문자열을 찾으려고합니다. 예를 들어 http://www.google.com 또는 http://stacoverflow.com/question/ask; 그 결과를 다음과 같이 적절하게 포장하십시오. :

<script type="text/javascript> 
var mystring = "I'm trying to make this link http://facebook.com/lenfontes active." 
/// REGEX that worked in Flash to grab ALL parts of the URL including after the .com... 

var http = /\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/gi; 

// preform the replace based on the Regex 
mystring = mystring.replace(http, function(){ 
    var link = arguments[0]; 
if (link.indexOf("http") == -1){ 
    link = "http://" + link;} 
    return "<a href='"+link+"'>"+arguments[0]+"</a>"; 
}); 

$('#results).html(mystring); 
</script> 

문제점 : ... 이후의 모든 것은 무시됩니다. 따라서 링크가 정확하지 않습니다 ...

이 질문을 게시하는 동안 Stack Overflow 인터페이스는 텍스트를 가져 와서 적절한 링크 태그를 사용하여 렌더링했습니다 ... 그렇게해야합니다.

의견을 환영합니다.

- 업데이트 :

죄송합니다, 나 .. 난 단지 HTTP 찾는 게 아니에요을 확장하자 ": //은 https"및/또는 단지를 // 그것은 감지하고 시작 링크를 포장 할 필요가 "www"로 시작하십시오

답변

2

ECMA (JavaScript)가 POSIX 문자 클래스를 지원하지 않으므로 정규 표현식이 작동하지 않으므로 [:punct:].com.을 무시합니다.