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)上的节点上工作得非常好。您在什么环境中运行脚本?什么浏览器/节点版本?很抱歉,变量设置错误。非常感谢你的建议!