Javascript 如何检索介于<;之间的多个单词;span>;及</span>;使用匹配功能或其他方式?

Javascript 如何检索介于<;之间的多个单词;span>;及</span>;使用匹配功能或其他方式?,javascript,html,match,Javascript,Html,Match,假设我的字符串是: var testexample = <p nameIt="Title">Title_Test</p><figure class="t15"><table><thead><tr> <th><span>Column1</span></th><th><span>Column2</span>

假设我的字符串是:

var testexample = <p nameIt="Title">Title_Test</p><figure class="t15"><table><thead><tr>
<th><span>Column1</span></th><th><span>Column2</span></th></tr></thead><tbody><tr><td><span>Entry1</span></td><td><span>Entry2</span></td><td><span>ready</span></td></tr></tbody></table></figure><p ex="ready">!aaa; 
var testexample=

Title\u测试

Column1Column2Entry2Ready

!aaa;

这是一个相当长的字符串,但它是一个以字符串形式写出的表。如何从
之间获取单词?例如,我希望它返回Column1、Column2、Entry1、Entry2(可能在数组中?)

以下是我迄今为止所做的尝试:

storing = testexample.match(/<span>(.*)</span>/);
storing=testexample.match(/(.*)/);
但它只返回了“Column1”,我还尝试了matchAll、exec和
/(.*)/g
。这些结果给了我整个字符串,没有任何内容,比如
Column1
,或者只是“Column1”。
我对javascript非常陌生,所以我不确定自己做错了什么,因为我已经阅读了相关文档。任何帮助都将不胜感激。谢谢。

关于@bobince有一个很好的答案

为了帮助你回答这个问题,你应该提供你想在什么环境下从事这项工作的信息

它是browser还是node.js?您是将HTML作为文本还是在页面中

我将为您的问题提出另一个解决方案,即创建dom元素,您将查询以提取所需的数据

/**
*用于将HTML字符串转换为dom元素的Helper函数
*@param{string}html
*@param{string}elementType
*@returns{htmldevelment}
*/
函数htmlToElement(html,elementType='div'){
常量模板=document.createElement(elementType);
template.innerHTML=html.trim();//结果永远不会返回空白文本节点
返回模板;
}
常量htmlString=`

Title\u测试

Column1Column2Entry2Ready

`; 常量元素=HTMLTOMENT(htmlString); //从跨度中提取内部文本作为字符串数组 const arrayOfWords=[…element.querySelectorAll('span')].map(span=>span.innerText); //将字符串数组转换为空格分隔的字符串 const wordsJoinedWithSpace=arrayOfWords.join(“”); //在控制台中记录结果


log({arrayOfWords,wordsJoinedWithSpace})您的正则表达式应该使用全局和多重标志——但除此之外,您需要检查多个实例。。大概是这样的:

<\s*span[^>]*>(.*?)<\s*\/\s*span\s*>
]*>(**?)
你可以在这里看到它的作用:

同样因为如上所述,您无法用正则表达式可靠地解析HTML——我尽了最大努力确保您仍然可以在
标记中使用样式或属性。。IE
仍将使用我提供的示例

下面再举一个例子:


如前所述,您无法用正则表达式可靠地解析随机HTML。但是,假设您只想解析问题中的HTML表,这是您的正则表达式:

<span>(.*?)<\/span>

谢谢你,傻瓜。将来也会这样哦哇,太干净了!你知道这在node js上是否有效,我是否需要安装包Regex?我试过了,它说testexample.match不是一个函数。很抱歉,我应该指定我的环境。@webdesignnoob,它在我的机器(v12.17.0)上的节点上工作得非常好。您在什么环境中运行脚本?什么浏览器/节点版本?很抱歉,变量设置错误。非常感谢你的建议!