簡體   English   中英

正則表達式,如果特定的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標簽中是否存在“我是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM