首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在javascript中拆分字符串

在javascript中拆分字符串
EN

Stack Overflow用户
提问于 2021-11-01 19:19:55
回答 1查看 56关注 0票数 0

我需要根据下一个想法拆分一个字符串:

代码语言:javascript
复制
const strin = 'test <br><span>test</span>  <div>aa</div>8'.split(/<\ *>/i)
console.log(strin)

因此,期望的输出是下一步:['test','<br>', '<span>test</span>', '<div>aa</div>', '8']

EN

回答 1

Stack Overflow用户

发布于 2021-11-01 20:03:18

正如@sebastian-simon提到的,只使用正则表达式“拆分”HTML是不可能的。最好的解决方案是使用真正的超文本标记语言解析器(已经随浏览器一起提供了,如果您正在使用Node.js,可以使用JSDOM)。

代码语言:javascript
复制
var str = 'test <br><span>test</span> <fake></fake> <div><p>aa</p></div>8';
var container = document.createElement("div");
container.innerHTML = str; // use a HTML element to parse HTML

// If you need to work with nested tag, you should traverse childNodes and their childNodes by yourself

// childNodes included TextNode, children not.
// [...container.childNodes] convert container.childNodes to a normal array
// so we can .map over it
var elmList = [...container.childNodes];
var tags = elmList
  // if elm is a TextNode, elm.outerHTML is undefined
  // then we use elm.textContent instead
  .map(elm => elm.outerHTML ?? elm.textContent)
  .map(elm => elm.trim()) // remove whitespaces
  .filter(elm => elm); // remove empty items
console.log(tags)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69801780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档