如何使用Javascript在字符串中找到类似HTML的标记?

如何使用Javascript在字符串中找到类似HTML的标记?,javascript,html,node.js,tags,extract,Javascript,Html,Node.js,Tags,Extract,我有以下字符串: var originalStr = "Test example <firstTag>text inside first tag</firstTag>, <secondTag>50</secondTag> end." HTML解析非常复杂,因此最好的方法是使用已经存在的解析器 如果在浏览器中执行此操作,则可以使用浏览器中内置的: 如果您在Node.js中执行此操作,那么有几个库可以执行此操作,例如。它提供的AP

我有以下字符串:

var originalStr = "Test example <firstTag>text inside first tag</firstTag>, <secondTag>50</secondTag> end."

HTML解析非常复杂,因此最好的方法是使用已经存在的解析器

如果在浏览器中执行此操作,则可以使用浏览器中内置的:

如果您在Node.js中执行此操作,那么有几个库可以执行此操作,例如。它提供的API与web浏览器中的API几乎相同

下面是一个
jsdom
示例:

const dom = new JSDOM("<!doctype html>" + originalStr);
const doc = dom.window.document;
for (const childElement of doc.body.children) {
    console.log(`${childElement.tagName} - ${childElement.textContent}`);
}

您可以使用提供的DOM方法编写代码,以创建所需的输出。(请注意上面的标记名规范化;如果与您正在做的事情有关,您可能必须使用以获取原始大小写。)

根据您处理的字符串的复杂性,简单的正则表达式解决方案可能会起作用(它很好地适用于您的字符串:

var str='第一个标记内的测试示例文本,50结束';
var tagsFound=[];
str.replace(/]*>(.*)/g,函数(m,m1,m2){
//将数据写入结果对象
tagsFound.push({
“标记名”:m1,
“价值”:m2
})
//替换为原始=不使用字符串
返回m;
});
//显示结果

对于(var i=0;我在网站上介绍了这个主题,我建议您仔细阅读。但我也在下面提供了一些信息(这些问题中的许多都非常具体,也非常古老)。您能解释一下如何使用正则表达式获得m1和m2值吗?
FIRSTTAG - text inside first tag
SECONDTAG - 50