나는 긴 문자열의 DAT는 모든 태그 를 인코딩합니다 대해 HTMLEncode 적용 html 태그 를 포함 할 수있다하지만 난이 방법이 얼마나 그대로 일부 특정 태그를 마칠 것이 가능대해 HTMLEncode는()는
1
A
답변
1
전체 문자열을 인코딩 한 다음 인코딩하지 않으려는 특정 태그를 디코딩합니다.
속성없이 간단한 태그 만 허용하는 경우 (예 : <b>
및 <u>
) 간단한 Replace
을 사용하여 디코딩 할 수 있습니다.
1
입력 HTML이 올바른 형식이라고 가정하면 정규 표현식을 사용할 수 있습니다. 이것은 중첩 된 태그에서 일치하는 쌍을 찾으려고하지 않고 HTML 주석 내부에서 발생하는 태그에 대해 걱정하지 않기 때문에 가능합니다. 그렇지 않으면 정규 표현식이이 작업의 나쁜 후보가됩니다.
var allowedTags = new[] { "a", "abbr", "br", /* etc. */ };
var output = Regex.Replace(input,
// Matches a single start or end tag
@"</?(\w+)[^>]*>",
// If the tag is one of the allowed tags...
me => allowedTags.Contains(me.Groups[1].Value)
// ... keep it unchanged
? me.Value
// otherwise, HTML-encode it
: HttpServerUtility.HtmlEncode(me.Value),
RegexOptions.Singleline);
사용자가 보낸 HTML 인 경우 올바른 형식이라고 가정 할 수 없습니다. 그러한 경우에는보다 견고한 솔루션을 추천합니다. Html Agility Pack을 사용하십시오.
관련 문제
- 1. XAML에 대해
- 2. 동일한 IEnumerable에 대해 여러 개의 쿼리를 실행하는 LINQ (개체에 대해)?
- 3. 최종 인수에 대해 각 인수에 대해 연산을 수행하는 bash 스크립트
- 4. 큰 데이터베이스/테이블에 대해 MySql에 대해 알고 계신가요?
- 5. 페이지 터너 위젯에 대해
- 6. 컨트롤 이름에 대해 궁금해하기
- 7. 모든 브라우저에 대해 window.href
- 8. Silverlight Navigation에 대해 혼란스러워합니다.
- 9. 이클립스 비누에 대해 어떻게해야합니까?
- 10. 이메일에 대해 Like Like
- 11. httpd에 대해 혼란 스럽습니다
- 12. 코드에 대해 계산하기!
- 13. ASP.NET MVC에 대해 혼란스러워합니다.
- 14. WebMatrix에 대해 자세히 다뤘습니까?
- 15. Android 출시에 대해
- 16. 어셈블리에 대해 GAC 확인
- 17. 일반 명칭의 보석에 대해
- 18. 대해 sendRedirect JSP
- 19. xml 및 php에 대해
- 20. 테이블의 조회에 대해 혼동했습니다.
- 21. NSUserDefaults의 충돌에 대해 걱정해야합니까?
- 22. ActionScript의 클래스에 대해
- 23. three20 라이브러리의 수정에 대해
- 24. 정렬 알고리즘에 대해
- 25. DirectX : DirectX에 대해 LockRect()
- 26. jsp에서 BEAN LAW에 대해
- 27. ValidationMessageFor 부울 속성에 대해
- 28. ' "않는 str_replace에 대해 PHP
- 29. asp.net의 GridView 컨트롤에 대해
- 30. JSP 대해 sendRedirect가