एक अपेक्षाकृत सरल सादे जावास्क्रिप्ट, और गैर regex, दृष्टिकोण:
var htmlString = '<head><title>Some title</title></head><body><p>Some text, in a paragraph!</p></body>',
html = document.createElement('html'),
frag = document.createDocumentFragment();
html.innerHTML = htmlString;
frag.appendChild(html);
var titleText = frag.firstChild.getElementsByTagName('title')[0].textContent || frag.firstChild.getElementsByTagName('title')[0].innerText;
console.log(titleText);
JS Fiddle demo यहाँ पूरा कोड है।
मैं कर दिया है, जाहिर है, अपने HTML स्ट्रिंग में अनुमान लगाना था और (प्रकल्पित से अब तक) हटाया सामग्री भर से <html>
/</html>
टैग संलग्न। हालांकि, भले ही वे टैग स्ट्रिंग में हैं, फिर भी यह काम करता है: JS Fiddle demo।
और एक से थोड़ा अधिक कार्यात्मक दृष्टिकोण:
function textFromHTMLString(html, target) {
if (!html || !target) {
return false;
}
else {
var fragment = document.createDocumentFragment(),
container = document.createElement('div');
container.innerHTML = html;
fragment.appendChild(container);
var targets = fragment.firstChild.getElementsByTagName(target),
result = [];
for (var i = 0, len = targets.length; i<len; i++) {
result.push(targets[i].textContent || targets[i].innerText);
}
return result;
}
}
var htmlString = '<html><head><title>Some title</title></head><body><p>Some text, in a paragraph!</p></body></html>';
var titleText = textFromHTMLString(htmlString, 'title');
console.log(titleText);
JS Fiddle demo।
स्रोत
2012-11-19 11:45:08
शीर्षक टैग चुनने के लिए jquery का उपयोग करें ... regex का उपयोग न करें। – nhahtdh
यह एक स्ट्रिंग के अंदर है जो दस्तावेज़ –
में नहीं है, मुझे इसके बारे में पता है, लेकिन मैंने समाधान देखा है जो HTML स्ट्रिंग को पार्स करता है और उस पर काम करता है। संपादित करें: http://stackoverflow.com/questions/704679/parse-html-string-with-jquery – nhahtdh