আমি একটি ছোট্ট ছোট্ট ফাংশন লিখেছি যা এটি করে। এটা শুধুমাত্র পালাতে "
, &
, <
এবং >
(কিন্তু সাধারণত ঠিক এ পর্যন্তই আপনি যাহাই হউক না কেন প্রয়োজন)। এটি সামান্য আরও মার্জিত তবে পূর্বের প্রস্তাবিত সমাধানগুলিতে এটি সমস্ত রূপান্তর করতে কেবল একটি ব্যবহার .replace()
করে। ( সম্পাদনা 2: হ্রাস কোড জটিলতা ফাংশনটিকে আরও ছোট এবং আরও সুন্দর করে তোলে, যদি আপনি মূল কোডটি সম্পর্কে আগ্রহী হন তবে এই উত্তরের শেষটি দেখুন))
function escapeHtml(text) {
'use strict';
return text.replace(/[\"&<>]/g, function (a) {
return { '"': '"', '&': '&', '<': '<', '>': '>' }[a];
});
}
এটি সরল জাভাস্ক্রিপ্ট, কোনও jQuery ব্যবহৃত হয় না।
পালানো /
এবং '
খুব
এমকিলেমেন্টের মন্তব্যের জবাবে সম্পাদনা করুন।
উপরের ফাংশনটি কোনও চরিত্রকে অন্তর্ভুক্ত করার জন্য সহজেই প্রসারিত করা যায়। পালাতে আরও অক্ষর নির্দিষ্ট করতে, কেবল নিয়মিত অভিব্যক্তিতে (অর্থাত্ অভ্যন্তরের অভ্যন্তরে /[...]/g
) এবং chr
অবজেক্টে প্রবেশের জন্য অক্ষর শ্রেণিতে উভয় সন্নিবেশ করান । ( সম্পাদনা 2: একইভাবে এই ফাংশনটিও সংক্ষিপ্ত করে রেখেছিল))
function escapeHtml(text) {
'use strict';
return text.replace(/[\"&'\/<>]/g, function (a) {
return {
'"': '"', '&': '&', "'": ''',
'/': '/', '<': '<', '>': '>'
}[a];
});
}
অ্যাডাস্ট্রোফের জন্য উপরের ব্যবহারটি নোট করুন '
(পরিবর্তে প্রতীকী সত্তাটি '
ব্যবহার করা যেতে পারে - এটি এক্সএমএলে সংজ্ঞায়িত করা হয়েছে, তবে এটি মূলত এইচটিএমএল স্পেকের অন্তর্ভুক্ত ছিল না এবং তাই এটি সমস্ত ব্রাউজার দ্বারা সমর্থিত নয়) দেখুন: এইচটিএমএল অক্ষর এনকোডিংগুলিতে উইকিপিডিয়া নিবন্ধ )। আমি কোথাও পড়ার বিষয়টিও স্মরণ করি যে হেক্সাডেসিমাল ব্যবহারের চেয়ে দশমিক সত্তা ব্যবহার করা আরও ব্যাপকভাবে সমর্থিত তবে আমি এখন পর্যন্ত এর উত্স খুঁজে পেতে পারি না বলে মনে হয়। (এবং সেখানে অনেকগুলি ব্রাউজার থাকতে পারে যা হেক্সাডেসিমাল সত্তাকে সমর্থন করে না))
নোট: যোগ করার পদ্ধতি /
এবং '
যেহেতু তারা HTML এ কোনো বিশেষ অর্থ আছে না এবং না পলান অক্ষরের লিস্টে না সব যে দরকারী, হয় প্রয়োজন পলান করা হবে।
আসল escapeHtml
ফাংশন
সম্পাদনা 2: কলব্যাকের chr
জন্য প্রয়োজনীয় বস্তুটি সংরক্ষণ করতে মূল ফাংশনটি একটি ভেরিয়েবল ( ) ব্যবহার করে .replace()
। এই পরিবর্তনশীলটিও এটিকে স্কোপ করার জন্য একটি অতিরিক্ত বেনামিয় ফাংশন প্রয়োজন, ফাংশনটি (অকারণে) কিছুটা বড় এবং আরও জটিল করে তোলে।
var escapeHtml = (function () {
'use strict';
var chr = { '"': '"', '&': '&', '<': '<', '>': '>' };
return function (text) {
return text.replace(/[\"&<>]/g, function (a) { return chr[a]; });
};
}());
দুটি সংস্করণ কোনটি দ্রুত তা পরীক্ষা করে দেখিনি। যদি আপনি তা করেন তবে এ সম্পর্কিত তথ্য এবং লিঙ্কগুলি নির্দ্বিধায় যোগ করুন।