首页 > 解决方案 > 我有要切片的字符串,并希望得到其余的字符串

问题描述

我正在使用反应我也有看起来像这样的字符串

<h2>h2 one</h2> <p>Tristique senectus et netus et malesuada 
<h2>h2 two</h2> fames ac turpis. Ridiculus mus mauris 
vitae ultricies leo integer malesuada nunc vel.

所以你可以看到h2标签也p标签
我只想得到h2标签
,即h2一,h2二,两个sting

我尝试使用 indexOf 进行拼接

  const res = markDownString?.indexOf('h2');
  const res1 = markDownString?.indexOf('</h2');
  const newMarkDownString = markDownString?.slice(1078, 1093); // which is first h2 tag position
  console.log(newMarkDownString)

这种方式只能获得第一个 h2 标签我怎样才能获得字符串中的所有 h2 标签?

标签: javascriptreactjs

解决方案


您可以match在此处使用正则表达式选项:

var input = "<h2>h2 one</h2> <p>Tristique senectus et netus et malesuada \n<h2>h2 two</h2> fames ac turpis. Ridiculus mus mauris \nvitae ultricies leo integer malesuada nunc vel.";
var tags = input.match(/(?<=<h2>)(.*?)(?=<\/h2>)/g);
console.log(tags);

但请注意,通常不应依赖正则表达式来解析 HTML 内容。相反,使用解析方法。


推荐阅读