javascript - 正则表达式替换不起作用

标签 javascript regex

下午好

我正在 regex101.com 网站上测试我的正则表达式。 正则表达式:

<button[^<]*>.*[\s\S]*<\/button>|
<iframe[^<>]*\/>|
<tr>[^<td>]*<\/tr>

测试文本

<table width="30px">
<P>Teste</p><iframe src="teste" /><p>Test</p>
<div><span>Teste Regex</span></div>
<p>Test</p><button onclick="myFunction()">Click me</button>
<table>
<tr><td>34</td></tr>>
</table>

为什么只有 <button[^<]*>.*[\s\S]*<\/button>代码匹配吗? 如果我清除正则表达式的这一部分并仅保留此部分:

<iframe[^<>]*\/>|
<tr>[^<td>]*<\/tr>

<iframe..已匹配

为什么会发生这种情况以及如何解决它?

最佳答案

您必须删除 OR 之前的新行,并设置 G(全局标志)。

<强> Working demo

enter image description here

关于javascript - 正则表达式替换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044023/

相关文章:

javascript - Angular 为什么星号(*)

javascript - REST API和JWT身份验证: send data along token?

正则表达式以任何顺序匹配包含两个(或更多)单词的字符串并且不区分大小写

ruby,使用正则表达式查找两个字符串之间的内容

javascript - javascript中有没有办法获取返回值的类型?

javascript - 使用 three.js 和 React 迭代定位具有 DOM 像素的球体

java - 从字符串中提取电话号码

正则表达式

javascript - 如何从页面源代码中使用正则表达式获取&lt;script&gt;代码?

javascript - 自动排列div,同时放大一个div