2011-04-18 3 views
6

저는 앵커 태그를 만드는 함수를 가지고 있습니다. 이 함수는 URL 인 Title을 매개 변수로받습니다. 문제는 언젠가 텍스트가 따옴표를 포함하기 때문에 구문 오류로 생성 된 앵커 태그가 생성된다는 것입니다.앵커의 "title"속성에 대한 형식/안전 문자열

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 텍스트를 안전한 문자열 (이 경우 title 속성)로 구문 분석하는 함수가 있습니까?

그렇지 않으면 문자열을 확인하고 모든 인용 부호를 제거 할 수 있지만 더 좋은 방법이 있는지 알고 싶습니다. 예를 들어 내 기능을 손상시킬 수있는 다른 문자가있을 수 있습니다.

+0

당신이 ASP를 사용하는이된다 .NET? –

+0

예, ASP.NET을 사용하고 있습니다. – tif

답변

8

실제로는 HttpUtility.HtmlAttributeEncode을 사용하여 제목 속성을 인코딩하고 싶습니다. 다른 인코더는 속성에 대한 올바른 텍스트를 생성하기 위해, "& 및 < 더 많은 일을 (다른 용도가)이 일에만 빠져있는 반면 것이다

예 :. This is a <"test"> & something else.This is a &lt;&quot;Test&quot;> &amp; something else.

+0

Brilliant, 이것이 내가 뭘 찾고 있었는지 고마워요. Joshua. – tif

+0

내 앵커 태그를 생성하기 위해 빌드 한 사용자 지정 함수를 사용하고 있습니다. 라이브러리에 함수가 있습니까? 대신 사용할 수 있습니다, 그것은 더 나은 안전 접근 수 있습니다. 감사합니다 – tif

+0

그것은 복잡에 따라 달라집니다, 당신은'HtmlTextWriter' 클래스를 사용하여 유효한 HTML입니다. 그것은 간단한 것들에 대해 꽤 무거워 ... 나는 단지 복잡한 컨트롤 등을 렌더링 할 때만 사용한다. 'HtmlTextWriter' 접근 방식을 사용한다면'StringBuilder' 객체를 사용하여'TextWriter' 객체에 래핑 한 다음'HtmlTextWriter'를 써서 메모리에 생성 할 수 있습니다 - 그리고'StringBuilder .ToString()'메서드를 호출합니다. 또한,'HtmlTextWriter' 메소드를 사용한다면, begin 태그를 렌더링하기 전에 속성을 추가해야합니다. (수작업으로하는 것이 더 간단 할 수 있습니다.) – Joshua

관련 문제