正则html代码标签替换

4,254 阅读2分钟

正则表达式html标签替换

 var reg =  /<[^>]+>/gi;                  //匹配所有的html标签。但不包括html标签内的内容
 var reg2 = /<(?!img).*?>/gi;             //匹配除img标签外的html标签  不包括html标签内的内容
 var reg3 = /<(?!img|p|\/p).*?>/gi;       //匹配除img、p标签外的html标签  不包括html标签内的内容
 var reg4 = /<(img|br|hr|input)[^>]*>/gi;          //只匹配img、br、hr、input标签
 var reg1 = /<(div|\/div).*?>/gi;         //匹配所有的div标签。不包括div标签内的内容
/*
    * 普通匹配  (但后面用不到,用不到的原因,可查看下面截图)
    * 下面两个可以匹配
    * 但是有个bug  嵌套标签的结构就不会被匹配到      例如这样的结构: <div>外面的div<div>里面的div</div></div>
    * 这也就是上面所说的嵌套标签的难点
    * */
    var reg = /<div[^>]*>[^<]*<\/div>/gi;    //匹配所有的div标签。包括div标签内的内容
    var reg2 = /<[^>]*>[^<]*(<[^>]*>)?/gi;   //匹配所有的html标签,包括html标签内的内容

    /*
    * 使用分组匹配
    * bug跟上面的一样     嵌套标签的结构就不会被匹配到      例如这样的结构: <div>外面的div<div>里面的div</div></div>
    * 如果用在过滤上的话,可以重复过滤(不会少过滤掉一些本就在标签内的内容,也不会多过滤标签外的内容)。在过滤上看,分组匹配比上面的匹配靠谱多了。
    * 但是,有个小问题,下面的分组匹配正则匹配不到单标签的,所以还需要用到上面的一般匹配。
    * 双标签对应匹配
    * */
    var reg3 = /<(div)[^>]*>[^<]*<\/(\1)>/gi;  //分组匹配   匹配所有的div标签,包括div标签内的内容
    var reg4 = /<(\S*)[^>]*>[^<]*<\/(\1)>/gi;   //分组匹配   匹配所有的html双标签,包括div标签内的内容

参考链接(www.cnblogs.com/huoan/p/960…)