URL을 C # 문자열의 하이퍼 링크로 변환하는 가장 쉬운 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/32637

  •  09-06-2019
  •  | 
  •  

문제

Twitter API를 사용하고 있으며 모든 URL을 하이퍼 링크로 변환하고 싶습니다.

이 작업을 수행하기 위해 가장 효과적인 방법은 무엇입니까?

에서 라코 디스

대상 라코 디스

도움이 되었습니까?

해결책

정규식은 아마도 이런 종류의 작업에서 친구가 될 것입니다. 라코 디스

URL 일치를위한 정규식에는 약간의 작업이 필요할 수 있습니다.

다른 팁

여기서 jquery가 JSON API를 사용 하여 동일한 작업을 수행했습니다.linkify 함수입니다 : 라코 디스

이것은 실제로 추악한 문제입니다.URL은 구두점을 포함하고 끝낼 수 있으므로 URL이 일반 텍스트에 포함 된 경우 URL이 실제로 끝나는 위치를 결정하기 어려울 수 있습니다.예 : 라코 디스

유효한 URL이지만 문장의 끝일 수도 있습니다. 라코 디스

공백이 발견 될 때까지 단순히 파싱 할 수 없습니다. 마침표를 URL의 일부로 유지하기 때문입니다.또한 마침표는 URL에서 매우 일반적이기 때문에 마침표 나 공백이 발견 될 때까지 단순히 구문 분석 할 수 없습니다.

예, 여기서 정규식은 친구이지만 적절한 정규식을 구성하는 것은 어려운 부분입니다.

다음도 확인하세요. .NET에서 정규식을 사용하여 URL 확장 .

정규 표현식과 함께 MatchEvaluator 대리자 함수를 사용하여 이에 대해 더 많은 제어를 추가 할 수 있습니다. 이 문자열이 있다고 가정합니다. 라코 디스

이제이 코드를 사용해보세요 라코 디스

/ RedWolves 응원 <인용구>

보낸 사람 : this.replace (/ [A-Za-z] + : // [A-Za-z0-9- ] +. [A-Za-z0-9- : % & \? /.=] + /, 함수 (m) {...

참조 : / [A-Za-z] + : // [A-Za-z0-9- ] +. [A-Za-z0-9- : % & \? /.=]+/

주소 "anyprotocol": // "anysubdomain / domain". "anydomainextension and address", 에 대한 코드가 있습니다.

그리고 이것은 문자열 조작의 다른 사용에 대한 완벽한 예입니다. .replace를 사용하여 원하는대로 슬라이스 및 주사위를 만들고 필요한 곳에 적절한 "a href"를 삽입 할 수 있습니다.

나는 jQuery를 사용하여 콘텐츠 로딩 로직에서 이러한 링크의 속성을 "target= _blank"로 쉽게 변경했습니다. 비록 .link 메소드로 사용자 정의가 가능하지 않더라도

저는 개인적으로 즉석에서 문자열 필터링 (String.prototype.linkify 선언)을 위해 문자열 객체에 사용자 지정 메서드를 지정하는 것을 좋아하지만, 대규모 환경에서 어떻게 작동할지 모르겠습니다. 10 개 이상의 맞춤형 linkify와 유사한 기능을 구성해야합니다. 그 시점에서 코드 구조로 다른 작업을해야한다고 생각합니다.

수의사가 여기에서 우연히 우릴 깨달을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top