鍍金池/ 問答/Java  PHP/ 根據(jù)關(guān)鍵字正則匹配HTML標(biāo)簽

根據(jù)關(guān)鍵字正則匹配HTML標(biāo)簽

需要匹配的字符串:

邊界值<div id="tag">b</div>邊界值
邊界值<img id="tag"/>邊界值
邊界值<img id="tag" />邊界值
邊界值<div id='tag'>a</div>
<div id='tag' >a</div>邊界值

現(xiàn)有需求:根據(jù)id值匹配出標(biāo)簽及其內(nèi)容(單雙)例如:<img id="tag"/>或者<div id="tag">b</div>
我的正則:<[^>]+id\=[' | "]tag[' | "].*?[^>]+>; 無法完全匹配
請幫忙修正,謝謝

回答
編輯回答
北城荒

寫的有些丑陋……不過好像匹配出來了

function regTest(reg) {
  var $htmls = [
    '<div id="tag">b</div>',
    '<img id="tag"/>gdf',
    '<img id="tag" />gdf',
    '<div id=\'tag\'>a</div>',
    '<div id=\'tag\' >a</div>'
  ]
  return rets = $htmls.map((el, i) => reg.test(el) && el.match(reg)[0])
}

var regexp = /(<[^>]+id\=('|")tag\1[^<]*\/>)|(<[^<]+id\=('|")tag\2[^<]+<\/[^>]+>)/


console.log(regTest(regexp))
2017年6月18日 09:38
編輯回答
臭榴蓮

表示的關(guān)系,你怎么寫成了[' | "],直接['"]不就行了??

2017年12月15日 19:32