文章内容:
不多说了,直接上图片了,让大家看个够!<BR><BR><IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712876_.jpg" border=0><BR><BR><IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712970_.jpg" border=0><BR><BR><IMG src="http://pic.baa.com.cn/picser/2007-11-12/114713952_.jpg" border=0><IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712876_.jpg" border=0>
<IMG alt=:lol  src="http://group.baa.com.cn/bbs/usercontrol2/editor/images/smilies/lol.gif" border=0  smilieid="12">
<img src="http://www.163.com/123.jpg">
<img>求一能正确匹配出所有图片,但是像<IMG alt=:lol  src="http://group.baa.com.cn/bbs/usercontrol2/editor/images/smilies/lol.gif" border=0  smilieid="12">这类图片(表情图片)不算图片  
我写的正则是:<img[^<]*[^smilies][^>]*>但是不能正确的匹配

解决方案 »

  1.   

    /<img(?:"[^"]*"|'[^']*'|[^"'>]+)*>/ig;
    图片是个很BT的东西用这个式子匹配图片
      

  2.   

    alt位置固定  但是内容不固定
      

  3.   


    /<img(?:"[^"]*"|'[^']*'|[^"'>]+)*>/ig;
    如果alt的位置固定可以直接
    /<img(?!\s+alt=(?:\:lol)\s+)(?:"[^"]*"|'[^']*'|[^"'>]+)*>/ig;
    如果alt的位置不固定则分两次匹配用上面的那个式子。。
    然后在test里面是否有alt //注意分两次匹配主要是怕属性里包含alt=xxx,这样严谨一些飘走
      

  4.   


    <textarea>
    <BR> <BR> <IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712876_.jpg" border=0>
    <BR> <BR> <IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712970_.jpg" border=0> <BR> <BR>
    <IMG src="http://pic.baa.com.cn/picser/2007-11-12/114713952_.jpg" border=0> <IMG src="http://pic.baa.com.cn/picser/2007-11-12/114712876_.jpg" border=0> 
    <IMG alt=:lol src="http://group.baa.com.cn/bbs/usercontrol2/editor/images/smilies/lol.gif" border=0 smilieid="12"> 
    <img src="http://www.163.com/123.jpg"> 
    <img> 
    </textarea>
    <script type="text/javascript">
    var p = /<img(?!\s+alt=(?:\:lol)\s+)(?:"[^"]*"|'[^']*'|[^"'>]+)*>/ig;
    window.onload = function () {
    var t = document.getElementsByTagName("textarea")[0];
    alert(t.value.match(p).join("\n"));
    };
    </script>
      

  5.   


    var inputstr = "HTML字符串";
    var re = /<img(?![^>]*?alt\s*=\s*["']?:lol["']?)[^>]*>/ig //所有不带alt=:lol的图片
    var re1 = /<img(?=[^>]*?alt\s*=\s*["']?:lol["']?)[^>]*>/ig //所有带alt=:lol的图片
    if(re.test(inputstr))alert(inputstr.match(re).length);//匹配到的不带alt=:lol的图片的个数
    if(re1.test(inputstr))alert(inputstr.match(re1).length);//匹配到的带alt=:lol的图片的个数
    var str1 = inputstr.replace(re,"");//删除所有不带alt=:lol之后的HTML
    var str1 = inputstr.replace(re1,"");//删除所有带alt=:lol之后的HTML