Regex,如果特定的字符串包含在特定的HTML标记之间
Regex if certain string is included between particular HTML tags
我有下面的html作为文本字符串
<p>I'll write a H1 below</p>
<h1>Hi I'm H1</h1>
<p>Last p</p>
我想做的是看看H1标记中是否存在"i’m H1"——好奇上面的正则表达式是什么,这样它就会返回真正的
第页。S: 即使它包含<h1>I'm H1 buddy</h1>
,它也应该返回true,所以本质上是在h1标记中,如果它包含特定的字符串,在上面的情况下"I’m h1",它应该输出true
以下正则表达式应该有效:
<h1>.*I'm H1.*<'/h1>
这是<h1>
,然后是可选文本(.*
(,然后是"我是H1",然后是更可选的文本(.*
(,最后是</h1>
。
在线正则表达式测试仪上的演示。
这是用Regex解决问题的一种方法。
var re = /<h1>.*?'sI'm'sH1.*?<'/h1>/;
var str = '<p>I''ll write a H1 below</p>'n<h1>Hi I''m H1 buddy</h1>'n<p>Last p</p>';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
document.getElementById("results").innerHTML = m != null
<div id="results"></div>
你可以试试这个:
/(I'm H1)/.test("Hi I'm H1") // return true
/(I'm H1)/.test("Hi I'm H1 buddy") // return true
<h1>.*?I'm'sH1.*?</h1>
.*?
最小匹配的任意或无字符(因此不匹配多个H1(- 任何空白的
's
I'm'sH1
文字
编辑:无需转义<
和>
您需要正则表达式是有原因的吗?
if (document.getElementsByTagName('h1')[0].innerHTML.indexOf("Hi I'm H1") != -1)
{
}
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- 如何在两个不同的iframe HTML之间进行通信
- jQuery在两个字符串标识符之间选择HTML
- 计算HTML表TD中两个数字之间的百分比
- 静态html中图像之间的空间在javascript中消失
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 在我的Javascript和HTML之间的表单提交按钮链接中遇到问题
- Chrome扩展:内容脚本和background.html之间的通信
- $(this.el).html 和 this.$el.html 之间有什么区别
- 什么's JavaScript和HTML之间的关系
- 在 C# 和 HTML 之间发布和获取
- 根据下拉框在添加和删除 html 之间切换
- 在javascript和Popup PHP Javascript HTML之间传递值的问题
- 淡入 在页面 html 之间淡出并使用数组脚本更改图像
- 你如何检查jquery .html()变量和Ruby on rail生成的html之间的相等性
- 在显示不同的html之间切换
- 如何使用JavaScript在HTML之间交换变量
- 将内容(或广告)放在从php服务器返回的HTML之间
- JavaScript对象和HTML之间的关系是什么?
- 如何使用jQuery在表格或列表html之间切换