给出以下HTML代码段:
<header>Student Directory</header>
<main>
<Student name="Pedro" age="23" />
<div id="student1">
<ul>
<li>Maths</li>
<li>English</li>
<li>Swedish</li>
</ul>
</div>
<Student name="Jane" age="15" />
</main>
<Footer />
在上面的html片段中,有三个表示组件的自定义标签。 组件具有一致的格式,因为它们以开括号开头,然后是大写字母 然后它们与/>紧密结合,因此,我尝试将所有组件作为字符串获取。正则表达式似乎 正确的方法,但是我对RegEx并不陌生,我已经阅读了有关实现的“贪婪”和“无贪婪”方法 这个。但是,作为新手,我可能会错过最佳实践或做事效率低下。本质上,在HTML示例中 正在寻找三个字符串:
字符串:
<Student name="Pedro" age="23" /> <Student name="Jane" age="15" /> and <Footer />
在HTML中,这仅表示三个组件及其数据。 任何帮助将不胜感激。
答案 0 :(得分:1)
如果您真的想使用正则表达式执行此操作
您可以尝试使用类似<[^(\/>)]+\/>
的东西:
var str = `<header>Student Directory</header>
<main>
<Student name="Pedro" age="23" />
<div id="student1">
<ul>
<li>Maths</li>
<li>English</li>
<li>Swedish</li>
</ul>
</div>
<Student name="Jane" age="15" />
</main>
<Footer />`
var matches = str.match(/<[^(\/>)]+\/>/g)
console.log(matches)