Regex剥离具有特定属性的html标记
Regex to strip html tag with certain attribute
我有一些无效嵌套的HTML,比如:
<form class="form1" method="get">
<div>
<input name="field1">
</form>
<form class="form2" method="get">
<input name="field1">
</form>
</div>
是的,一团糟,别问。无效的嵌套正在其他地方引发问题。我认为jQuery正在期待一个结束的</div>
,但只在最后一个找到它。然后,它将第二个<form>
标签视为无效,并丢弃其正上方的闭合</form>
,并假设第1行和第9行之间的所有内容都是一种形式
如果我将这些输出到控制台:
$('.form1).html()
-所有线路1-9$('.form2).html()
-未定义
因此,我要做的是将整个事情视为一个字符串,并使用regex去掉form2。我期待一个类似于的正则表达式
formText.replace(/(<form'b[^>]*>)[^<>]*(<'/form>)/gi, "");
但我不知道如何用CCD_ 6引用具体的形式
它也是一个多行字符串的问题。
更新:添加了更多细节,概述了jQuery的remove()
方法不起作用的原因。不幸的是,jQuery只认为有一个表单。
不要使用正则表达式解析HTML。既然您使用的是jQuery,只需使用.remove()
:
$(function() {
$(".form2").remove();
});
JSFiddle
我最终使用了:
formText = formText.replace(/(<form'b[^>]*form2+.*>['s'S]+<'/form>)/gi, "");
['s'S]
匹配包括'n
和'r
在内的所有字符以覆盖换行符。
我本可以让正则表达式中处理类名的部分更具体,这样我就知道它是类,而不是其他类似的随机形式,但在实践中这并不重要(第二种形式只有一个实例,具有非常具体的类名)。
相关文章:
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 获取HTML属性中CSS声明的值
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- HTML范围:动态设置值属性
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 自定义HTML元素属性未显示-Web组件
- 如何在CSS或Javascript中定位选定的属性(在HTML选项中)
- 函数jquery.html()不提供数据属性集值
- Android在HTML容器中滚动,该容器具有CSS溢出属性
- 如何使用Undercore和Backbone在HTML中表示模型属性
- Regex剥离具有特定属性的html标记
- html5中数据描述属性中的html列表
- 不存在的属性HTML输入字段
- 应该为“容器”元素和“动画”元素分配什么位置属性?HTML CSS JavaScript.
- 动画高度属性::HTML+CSS+JavaScript
- 不能读取属性'HTML'的定义
- 基于类似屏幕的CSS媒体查询更改Javascript属性(HTML中的内联)
- 在 JointJS 中,我得到错误属性 html 在类型“类型形状”上不存在
- 覆盖默认属性'HTML的值"标签,这是由FB js库设置