পদ্ধতি # 1 । স্ট্রিংটিতে এইচটিএমএল ডেটা রয়েছে কিনা তা পরীক্ষা করার জন্য এখানে সহজ কাজ রয়েছে:
function isHTML(str) {
var a = document.createElement('div');
a.innerHTML = str;
for (var c = a.childNodes, i = c.length; i--; ) {
if (c[i].nodeType == 1) return true;
}
return false;
}
ব্রাউজারের ডিওএম পার্সারটিকে সরবরাহের স্ট্রিংটি এইচটিএমএল এর মতো দেখায় বা না দেখায় তা সিদ্ধান্ত নিতে অনুমতি দেওয়া হয়। আপনি দেখতে পাচ্ছেন এটি কেবল ELEMENT_NODE( nodeType1 এর) জন্য পরীক্ষা করে ।
আমি বেশ কয়েকটি পরীক্ষা করেছি এবং দেখে মনে হচ্ছে এটি কার্যকর হয়:
isHTML('<a>this is a string</a>')
isHTML('this is a string')
isHTML('this is a <b>string</b>')
এই দ্রষ্টব্যটি সঠিকভাবে এইচটিএমএল স্ট্রিং সনাক্ত করতে পারে তবে এর পার্শ্ব প্রতিক্রিয়া রয়েছে যা ইম্জি / ভিডিও / ইত্যাদি। ট্যাগগুলি একবার অভ্যন্তরীণ এইচটিএমএলে পার্স করা সংস্থান ডাউনলোড শুরু করবে start
পদ্ধতি # 2 । অন্য একটি পদ্ধতি DOMParser ব্যবহার করে এবং লোডিং সংস্থানগুলির পার্শ্ব প্রতিক্রিয়া নেই:
function isHTML(str) {
var doc = new DOMParser().parseFromString(str, "text/html");
return Array.from(doc.body.childNodes).some(node => node.nodeType === 1);
}
দ্রষ্টব্য:
1. Array.fromES2015 পদ্ধতি, এর সাথে প্রতিস্থাপন করা যেতে পারে [].slice.call(doc.body.childNodes)।
২. someকলের তীর ফাংশনটি সাধারণ বেনাম ফাংশন দিয়ে প্রতিস্থাপন করা যেতে পারে।