2013-04-19 2 views
0

안녕하세요, 저는 API에서 레이블 목록으로 응답 목록을 인쇄하려고합니다. 한가지 문제는 JSON의 응답이 단축 된 문자열이라는 것입니다. 그것 안에 연결하십시오. 이 문자열을 레이블에 넣으면 링크가 링크로 인식되지 않으므로 브라우저는 HTML이라고 생각하여 밑줄이나 포인터가 없습니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 이미 그것을 HtmlEncode하려고 시도하고 도움이되지 않았다.단축 된 html 문자열을 레이블의 실제 HTML 링크로 변환하는 방법

다음은 내가하려는 일입니다.

lblResponse.InnerHtml += "<strong>created_at:</strong> " + item.created_at 
        + "<strong>&nbsp text:</strong> " + HttpUtility.HtmlEncode(item.text) + "<br />"; 

이것은이를 레이블로 반환합니다. 내 브라우저에서는 단축 된 링크가 링크로 인식되지 않지만. 조언?

created_at : 화 4월 16일 20시 30분 32초 0000 2013 텍스트 : 다음 주에 대한 몇 가지 소셜 미디어 뉴스 ... 도움에 미리 http://t.co/RR5DKvqUjd

감사입니다.

+1

. 'item.text'를'item.text '으로 감쌀 필요가 있습니다. –

+0

@JoeyGennari, OPs item text에는 링크가 아닌 링크가 포함 된 텍스트가 포함되어 있습니다.이 링크는 텍스트의 url이 아닌 전체 텍스트에 대한 하이퍼 링크를 만듭니다. –

+0

약간의 실수가 없습니다. 다음은 URL을 정규화 할 수있는 두 가지 리소스입니다. http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html 및 http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with 또는 without-the-522084f0. –

답변

2
var date = "Tue Apr 16 20:30:32 +0000 2013"; 
var text = "Here is some social media news for the week... http://t.co/RR5DKvqUjd"; 
var textwithanchor = Regex.Replace(text, @"\(?\bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]", delegate(Match match) 
    { 
     return string.Format("<a href='{0}'>{0}</a>", match.ToString()); 
    }); 
var html = "<strong>created_at:</strong> " + date + "<strong>&nbsp text:</strong> " + textwithanchor + "<br />"; 

정규식 정상적으로 여기에서 빌린 : http://www.codinghorror.com/blog/2008/10/the-problem-with-urls.html하지만주의 사항에 유의하시기 바랍니다. 이 같은

+0

이것은 내가 원하는 것처럼 잘 작동했습니다. 당신의 도움을 주셔서 감사합니다. – recneps

0

시도 뭔가 : 브라우저는 링크로 일반 텍스트를 인식하지 않을 것

lblResponse.InnerHtml += "<strong>created_at:</strong> " + 
         item.created_at + 
         "<strong>&nbsp text:</strong> " + 
         "<a href=\"" + item.text + "\"" + 
         HttpUtility.HtmlEncode(item.text) + 
         "</a><br />"; 
관련 문제