2011-11-09 3 views
0

나는 간단한 채팅을하고 있습니다. 사용자가 서버에 메시지를 보내면이 메시지를 구문 분석합니다. http://****을 찾을 때마다 a 태그로 변환하고 싶지만 다른 모든 문자는 이스케이프해야하므로 사용자가 html을 사용하지 않아도됩니다.채팅에 앵커로 사용할 "http : //"

아마도 여러 가지 방법으로 얻을 수 있습니다. 멋진 정규식을 사용하는 것이 좋습니다. 어떤 아이디어?

Node.js를 사용하고 있습니다.

+6

@Neal : 정규식과 일반 텍스트로 URL을 확인하는 것은 괜찮 –

+0

@Neal가 : 나는 이것이 내 질문과 어떻게 관련되어 있는지 볼 수 없다. – freakish

+1

@Neal : 저게 뭐지? 실제 stackoverflow 게시물에 링크하는 대신 포스트의 이미지를 제공하는 블로그에 링크하지만 더 이상의 텍스트 나 코멘트는 없습니까? 부가가치가 있습니까, 아니면 그냥 블로그를 스팸하려고합니까? – Konerak

답변

1

어떻게 사용자에게 출력하기 전에이 기능을 통해 채팅의 각 행을 실행하는 방법에 대한 :

function replaceURLWithHTMLLinks(text) { 
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
    return text.replace(exp,"<a href='$1'>$1</a>"); 
} 

출처 : How to replace plain URLs with links?

+0

거의 다 왔어. 그러나 동시에 나는 다른 숯을 피하고 싶다. 예 : ' test http://google.com'은 링크가 교환 된 모든 것을 표시합니다. – freakish

+1

오, 난 처음부터 전체 메시지를 인코딩하고 그 다음 * 파서를 사용하십시오. 나는 그것이 잘 동작한다고 생각한다. 고맙습니다! :) – freakish

관련 문제