为了账号安全,请及时绑定邮箱和手机立即绑定

根据关键字正则匹配HTML标签

根据关键字正则匹配HTML标签

PHP
汪汪一只猫 2019-03-18 15:27:50
需要匹配的字符串: 边界值<div id="tag">b</div>边界值 边界值<img id="tag"/>边界值 边界值<img id="tag" />边界值 边界值<div id='tag'>a</div> <div id='tag' >a</div>边界值 现有需求:根据id值匹配出标签及其内容(单双)例如:<img id="tag"/>或者<div id="tag">b</div>我的正则:<[^>]+id\=[' | "]tag[' | "].*?[^>]+>; 无法完全匹配请帮忙修正,谢谢
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

写的有些丑陋……不过好像匹配出来了

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))
查看完整回答
反对 回复 2019-03-18
?
慕标5832272

TA贡献1966条经验 获得超4个赞

表示的关系,你怎么写成了[' | "],直接['"]不就行了??

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 473 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信