2011-04-21 7 views
2

포럼 프로그램에서 서명 기능을위한 스크립트를 작성 중이며 다른 사람이 따옴표 나 다른 JavaScript 파싱 가능 문자를 입력하면 내 프로그램이 중단됩니다.JavaScript로 동적 문자열을 이스케이프 처리합니다.

자바 스크립트를 스크립트로 구문 분석하지 않고 문자열로 인식하도록 강요하거나, 실패하면 동적 인 문자열에서 모든 스크립트를 이스케이프 처리하는 함수가 있습니까?

나는 검색을했는데 개인용 문자를 슬래시 (slash)로 이스케이프하는 방법에 대한 끝없는 웹 페이지를 찾을 수있었습니다. 아마 검색 기술에 작업이 필요할 것입니다.

답변

2

JavaScript 문자열 리터럴에 동적으로 서버 측 언어를 사용하여 서명의 내용을 넣고 있습니까? 그것은 아마도 최선의 방법이 아닙니다. 당신은 당신이 그것을하고있는 방식을 다시 생각하고 싶을지도 모른다.

예를 들어, 더 좋은 방법은 페이지에 시각적으로 구별 될 필요가없는 요소를 추가 한 다음 (예 : 시각적으로 구별 할 필요가없는) 요소를 사용할 수 있다는 것입니다. JavaScript 런타임 중 스크립트. 당신은 아직도 당신이 가고있는 길을 가져 가고 싶어하면

(당신이 당신의 스크립트에서 따옴표 문자열을 사용하는 경우 \" 또는 "), 당신은 \''을 대체 할 수와와 실제 개행 문자를 대체하는 \\n\n 교체 개행 문자가 이스케이프됩니다.

+0

글쎄, 설정 방법은 다음과 같습니다. 사용자가 프로필 내용을 변경할 수있는 사용자 패널 페이지이며 설정 중 하나는 서명입니다. PHP는 데이터베이스에서 사용자에 대한 모든 정보를 수집하고 사용자가 해당 설정을 변경하려고 할 때 올바른 div를 표시하는 javascript 함수를 사용합니다. PHP가 가져온 서명을 표시하면 서명의 파싱 가능한 정보를 통해 자바 스크립트가 손상됩니다. 차라리 페이지의 전체 형식을 변경하지 않을 것입니다. 당신은 방법이있을 것이라고 생각합니다. – linus72982

+0

제 질문에 대한 저의 마지막 진술이 도움이 될 것입니다. –

+0

모든 것을 이스케이프 할 때마다 preg_replace와 동일한 자바 스크립트를 수행하지 않으면 데이터가 동적 인 것처럼 개별적으로 이스케이프 문자를 사용할 수 없습니다. PHP에서 당신을 위해하는 함수가 있습니다. 그냥 자바 스크립트가 가지고 있다고 생각했습니다. – linus72982

관련 문제