2012-07-19 4 views
1

가능한 중복 :
JavaScript/jQuery HTML Encoding자바 스크립트에 C# HttpUtility.HtmlEncode와 동등한 기능이 있습니까?

나는 JSON으로 클라이언트에 이르기까지 정보를 전달, 그리고 난 내 자바 스크립트 코드에서 일부 HTML을 생성하고있다.

html.push("<img title='" + person.Name + "' src . . . 

조 O "그것은 단지로 나타으로 '조 O'Mally"는 person.Name 경우 문제가있다 "본인은이 같은 이미지의 제목으로 통과 필드라는 이름이 내가 이미지 위에 마우스를 올려 놓을 때 ('이름 때문에')

페이지에서 정확한 문자열을 표시하고자하는 곳이 있기 때문에 서버 측에서 '스트립을 원하지 않습니다.'

자바 스크립트에 HttpUtility.HtmlEncode와 동등한 것이 있습니까? 이미지를 가져 가면 이미지 제목에 전체 이름이 표시됩니까?

+2

이 게시물을 살펴보십시오. http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding – 5arx

+0

또는 http://stackoverflow.com/questions/3905310/is-there-a- javascript-equivelent-of-htmlencode-htmldecode-asp-net (아마도 더 많은 것) – Lucero

답변

8

아니요.하지만 쉽게 쓸 수 있습니다.

function htmlEnc(s) { 
    return s.replace(/&/g, '&amp;') 
    .replace(/</g, '&lt;') 
    .replace(/>/g, '&gt;') 
    .replace(/'/g, '&#39;') 
    .replace(/"/g, '&#34;'); 
} 

내가 더 빨리 (기본적으로 하나의 "교체"전화로 일을하는) 것을 만드는 방안을 해본 적이 있지만 특히 최신 브라우저에 대부분의 목적을 위해 충분히 잘 수행합니다.

+0

왜 '"'대신에 '"'이 나오나요? 문자가 하나뿐이기 때문에? – Lucero

+0

습관의 @Lucero 힘 :-) 원한다면 """을 사용할 수 있습니다. – Pointy

+0

내 약한 두뇌가 기억하는 데 도움이되기 때문에 선호합니다. 'apos'는 정의 된 HTML 4 엔티티가 없으므로 이렇게 이스케이프 처리해야하지만, 명확성을 위해 명명 된 개체. – Lucero

0

Here은 javascript escape() 및 unescape() 함수의 사용법을 설명하는 훌륭한 게시물입니다. 이러한 기능은 수행하려는 작업에서 도움이 될 수 있습니다.

+0

아니요, 그렇지 않습니다. 이러한 함수는 HTML 구문이 아닌 URL 구문의 이스케이프 문자에 관한 것입니다. – Pointy

관련 문제