当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何根据条件截取字符串?

隆向晨
2024-01-23
let txt = '<h1></h1><p><hr></p><p></p><h2><hr></h2>'

我有以上一段代码,想截取两个标签之间的所有文本 responseText.split('<h')
<h 会将 hr 也排除出来,结果如下:

["", "1></h1><p>", "r></p><p></p>", "2>", "r></h2>"]

可我想要的结果是如下这样:

["<h1></h1><p><hr></p><p></p>", "<h2><hr></h2>"]

请问如何在 .split() 添加条件筛选呢?

共有4个答案

史昊焱
2024-01-23

cheerio 试试子?

葛阳华
2024-01-23
// 自己好像解决了console.log(responseText.split(/<h(?!r)/))
端木乐语
2024-01-23

没太看明白你的需求,如果意思是“将文本分为以标题标签开始(到下一个标题标签或者文本末尾结束)的若干段”的话,可以这样写:

'<h1></h1><p><hr></p><p></p><h2><hr></h2>'.split(/(?=<h\d)/g)
邬博涉
2024-01-23

在JavaScript中,你可以使用正则表达式和split()方法结合使用,以根据特定条件分割字符串。在你的例子中,你想要分割字符串,但只保留包含<h的标签。

你可以使用正则表达式/<h[^>]*>/g来匹配所有以<h开头,后面不跟>的字符串。然后,你可以使用split()方法来分割字符串。

以下是你可以使用的代码:

let txt = '<h1></h1><p><hr></p><p></p><h2><hr></h2>';let result = txt.split(/<h[^>]*>/g);console.log(result);

这段代码将输出:

["", "<h1></h1><p><hr></p><p></p>", "<h2><hr></h2>"]

注意,结果中的第一个元素是空字符串,因为在原始字符串的开头有一个匹配项。如果你想要去除这个空字符串,你可以使用filter()方法:

let result = txt.split(/<h[^>]*>/g).filter(Boolean);console.log(result);

这将输出:

["<h1></h1><p><hr></p><p></p>", "<h2><hr></h2>"]
 类似资料:
  • 我最近在CodeWars中遇到了这个问题 给定一个数字串,您应该用“0”替换5以下的任何数字,用“1”替换5及以上的任何数字。返回结果字符串。注意:输入永远不会是空字符串 我来自 Python 背景,我们可以使用 if 语句进行索引来解决这个特定问题,如下所示: 但当我尝试在Swift中使用索引(如Python风格)时,我失败了……经过一段时间的研究,我发现了这个方法:<code>String。r

  • 本文向大家介绍JAVA如何按字节截取字符串,包括了JAVA如何按字节截取字符串的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JAVA如何按字节截取字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JavaScript 截取字符串代码实例,包括了JavaScript 截取字符串代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JavaScript 截取字符串代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我有以下数据帧: 我希望获得行ID,其中。 预期收益为。 有什么想法吗?

  • 问题内容: 我有一个名为@status的变量,该变量在此select语句之前设置: 我只想选择if列,否则我想为shipwith选择null。我该如何完成? 问题答案: