JQuery ট্রিকটি উদ্ধৃতি চিহ্নগুলি এনকোড করে না এবং আইইতে এটি আপনার সাদা স্থানটি ছিনিয়ে নেবে।
জ্যাঙ্গোর পালানোর টেমপ্লেটগের উপর ভিত্তি করে , যা আমি অনুমান করি যে ইতিমধ্যে ভারী ব্যবহার / পরীক্ষা করা হয়েছে, আমি এই ফাংশনটি তৈরি করেছি যা যা প্রয়োজন তা করে।
এটি হোয়াইটস্পেস-স্ট্রিপিং ইস্যুটির জন্য যে কোনও কাজের ক্ষেত্রের তুলনায় তর্কযোগ্যভাবে সহজ (এবং সম্ভবত দ্রুত) - এবং এটি উদ্ধৃতি চিহ্নগুলি এনকোড করে তোলে, যদি আপনি উদাহরণস্বরূপ কোনও বৈশিষ্ট্য মানের অভ্যন্তরে ফলাফলটি ব্যবহার করতে যাচ্ছেন তবে এটি প্রয়োজনীয়।
function htmlEscape(str) {
return str
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}
// I needed the opposite function today, so adding here too:
function htmlUnescape(str){
return str
.replace(/"/g, '"')
.replace(/'/g, "'")
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/&/g, '&');
}
আপডেট 2013-06-17:
দ্রুততম পালানোর সন্ধানে আমি একটি replaceAll
পদ্ধতির এই বাস্তবায়নটি পেয়েছি :
http://dumpsite.com/forum/index.php?topic=4.msg29#msg29
(এছাড়াও এখানে উল্লেখ করা হয়েছে: দ্রুততম একটি স্ট্রিংয়ে অক্ষরের সমস্ত দৃষ্টান্ত প্রতিস্থাপনের পদ্ধতি )
কিছু কর্মক্ষমতা ফলাফল এখানে:
http://jsperf.com/htmlencoderegex/25
এটি replace
উপরের বিল্টিন চেইনে অভিন্ন ফলাফলের স্ট্রিং দেয় । কেউ আরও দ্রুত কেন এটি ব্যাখ্যা করতে পারলে আমি খুব খুশি হব !?
আপডেট 2015-03-04:
আমি কেবল লক্ষ্য করেছি যে AngularJS উপরের পদ্ধতিটি হুবহু ব্যবহার করছে:
https://github.com/angular/angular.js/blob/v1.3.14/src/ngSanitize/sanitize.js#L435
তারা কয়েকটি সংশোধন যোগ করে - তারা মনে হয় যে তারা একটি অস্পষ্ট ইউনিকোড ইস্যুটি পরিচালনা করার পাশাপাশি সমস্ত অ-অক্ষরীয় অক্ষরকে সত্তায় রূপান্তর করবে। আমি যতক্ষণ না আপনার ডকুমেন্টের জন্য একটি ইউটিএফ 8 চারসেট নির্দিষ্ট করে রেখেছি ততক্ষণ আপনি এই প্রভাবটির আওতায় ছিলেন।
আমি লক্ষ করব যে (৪ বছর পরে) জ্যাঙ্গো এখনও এইগুলির মধ্যে একটিও করে না, সুতরাং সেগুলি কতটা গুরুত্বপূর্ণ তা আমি নিশ্চিত নই:
https://github.com/django/django/blob/1.8b1/django/utils /html.py#L44
আপডেট 2016-04-06:
আপনিও ফরোয়ার্ড-স্ল্যাশ থেকে পালাতে ইচ্ছুক হতে পারেন /
। এটি সঠিক এইচটিএমএল এনকোডিংয়ের জন্য প্রয়োজন নেই, তবে এটি ওডাব্লুএএসপি দ্বারা একটি অ্যান্টি-এক্সএসএস সুরক্ষা ব্যবস্থা হিসাবে প্রস্তাবিত । (মন্তব্যগুলিতে এটি প্রস্তাব দেওয়ার জন্য @ জেএনএফকে ধন্যবাদ)
.replace(/\//g, '/');