DOMString просто реализована в виде строки в большинстве (всех?) Браузерных сред JavaScript, поэтому вы можете использовать любую технику синтаксического анализа, которая вам нравится, включая регулярные выражения, DOMParser и анализатор HTML, предоставляемые такими библиотеками, как jQuery.Например:
function extractText(domString) {
var m = (''+domString).match(/<tag>(.*?)<\/tag>/i);
return (m) ? m[0] : null;
}
Конечно, это ужасная идея;вам действительно следует использовать синтаксический анализатор DOM, например, с jQuery:
$('tag', htmlString).html();
[Edit] Чтобы пояснить приведенный выше пример jQuery, это эквивалентно выполнению чего-то вроде следующего:
function extractText2(tagName, htmlString) {
var div = document.createElement('div'); // Build a DOM element.
div.innerHTML = htmlString; // Set its contents to the HTML string.
var el = div.getElementsByTagName(tagName) // Find the target tag.
return (el.length > 0) ? el[0].textContent : null; // Return its contents.
}
extractText2('tag', '<tag>Foo</tag>'); // => "Foo"
extractText2('x', '<x><y>Bar</y></x>'); // => "Bar"
extractText2('y', '<x><y>Bar</y></x>'); // => "Bar"
Это решение лучше, чем решение регулярных выражений, поскольку оно будет обрабатывать любые нюансы синтаксиса HTML, в которых решение регулярного выражения не будет выполнено.Конечно, он, вероятно, нуждается в некотором межбраузерном тестировании, поэтому рекомендация для такой библиотеки, как jQuery (или Prototype, ExtJS и т. Д.).