[英]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標簽中是否存在“我是H1”-對上面的正則表達式感到好奇,以便它返回true
PS:即使它包含<h1>I'm H1 buddy</h1>
它也應該基本上在h1標簽中返回true,因此如果它包含特定的字符串,則在上述情況下為“ I'm H1”,它應該輸出真正
以下正則表達式應該起作用:
<h1>.*I'm H1.*<\/h1>
在<h1>
之后是可選文本( .*
),然后是“ I'm 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>
<h1>.*?I'm\sH1.*?</h1>
.*?
匹配最少的任何字符或不匹配(因此不匹配多個H1) \\s
用於任何空格 I'm\\sH1
文字 編輯:無需轉義<
和>
您可以嘗試以下方法:
/(I'm H1)/.test("Hi I'm H1") // return true
/(I'm H1)/.test("Hi I'm H1 buddy") // return true
您是否需要正則表達式的原因?
if (document.getElementsByTagName('h1')[0].innerHTML.indexOf("Hi I'm H1") != -1)
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.