簡體   English   中英

JavaScript正則表達式,匹配P但不匹配PARAM

[英]JavaScript Regex, match P but not PARAM

使用JavaScript RegEx。

如何匹配<p>元素(包括屬性),而不匹配<param>或其他以“ P”開頭的HTML元素。

嘗試:

/(<p(?:\s+[^>]*)?>)/i

/
 (        #start capture group
  <p       #match '<p'
  (?:      #start non-capture group
    \s+     #match one or more white space characters
    [^>]*   #match zero or more characters that arent >
  )?       #end non-capture group - make it optional
  >        #match '>'
 )        #end capture group
/i        #end regexp - make case insensitive
/<p\b[^>]*>/i

\\b匹配單詞邊界; 在“ p”之后,表示下一個字符(如果有下一個字符)不是字母,數字或下划線。

披露: [^>]*並不是匹配其余標簽的正確方法,因為屬性值可以合法地包含尖括號。 但這可能已經足夠好了,無論如何這不是問題所在。

<(p|P)([\\s].*)?>

似乎效果不錯=)。 但是,當您可以使用DOM甚至XML / XPath /任何東西時,都不應該使用RegEx。

這是我的嘗試:

/\<P(\s+\w+=\"?[^\"\s\>]*\"?)*\>/gi
/<(?:p|P)\s+/.exec(s);

盡管它與整個標簽不匹配,但是考慮到屬性中允許使用標簽結束符號>,這相當復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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