<img src="1.jpg" /><img      height="20"  width="50"      src="1.jpg"  border="0" alt="" /><img      width="20" height="50"      src="1.jpg"  border="0" alt="" />
<img src="1.jpg"     width="20" height="50"   border="0" alt="" /> ===========================使用一个(或者两个)正则替换成
这样的形式!!

解决方案 »

  1.   

    str = str.replace(/<img[^>]*width=\"(\d+)\"[^>]*height=\"(\d+)\"[^>]*src=[\'\"\s]*([^\s\'\"]+)[^>]*>/ig,'');我这样写的话,感觉要考虑很多种情况,比如宽度在前与在后的情况!!!
      

  2.   

    写个方法吧,正则不太灵活:       var imgs=document.getElementsByTagName('img');
    for(var i=0;i<imgs.length;i++){
    var str='img';
    var _w=imgs[i].getAttribute('width');
    var _h=imgs[i].getAttribute('height');
    if(_w!=null && _h!=null){
    str+='='+_w+','+_h;
    }
    alert('['+str+']'+imgs[i].getAttribute('src')+'[/img]')
    }
      

  3.   

    这个问题建议不要用正则,太麻烦了。。<script>
    var imgs=document.getElementsByTagName('img');
        for(var i=0;i<imgs.length;i++){
            var str='img';
            var _w=imgs[i].width;
            var _h=imgs[i].height;
    var src=imgs[i].getAttribute('src').replace(/^.*\/(.*?)\.jpg$/g, '$1'+".jpg");//只获取图片的名字如a.jpg而不是地址连在内!
            if(_w!=null && _h!=null){
                str+='='+_w+','+_h;    
            }
            alert('['+str+']'+src+'[/img]');    
        } 
    </script>
      

  4.   


    var str = '<img src="1.jpg"     width="20" height="50"   border="0" alt="" /> ';
    var reg = /(([a-z]+)="([^"]*)"\s*)/g;
    var result = new Array();
    result[0]="";
      }
    }
    if(typeof result[1] =="undefined"&&typeof result[2] =="undefined")
       result[1] = "]"
    else
    {
      if(typeof result[1] =="undefined"&&typeof result[2] !="undefined")
         result[1] = ","
      else
         result[2] = "]"
    }
    alert(result.join(''));
      

  5.   

    我问题描述不是很具体<img />这样的标签是在一个多行文本框里面,做个HTML转UBB的代码
      

  6.   

       function getVal(t,s)
       {
           var regex = t + "=((\"|\')?)([^ ]*)\\1"
           var oRegex = new RegExp(regex,"i");
           var m = oRegex.exec(s);
           return m ? m[3] : null
       }
       
       
       var html ='<img src="1.jpg" /><img      height="20"  width="50"     src="1.jpg"  border="0" alt="" /><img      width="20" height="50"      src="1.jpg"  border="0" alt="" /><img src="1.jpg"     width="20" height="50"   border="0" alt="" /> '
       var regex = /<img[^>]+>/gi
       var mc = null;
       var result = new Array();
       while(mc = regex.exec(html))
       {
           var str = mc[0];
           var h = getVal("height",str)
           var w = getVal("width",str)
           var s = getVal("src",str)
           if(!h || !w)
               result.push("")
           else
               result.push("")
       }
       document.write(result.join("<br/>"));
      

  7.   


    var str = "<img src=\"1.jpg\" />\n" +
    "<img      height=\"20\"  width=\"50\"      src=\"1.jpg\"  border=\"0\" alt=\"\" />\n" +
    "<img      width=\"20\" height=\"50\"      src=\"1.jpg\"  border=\"0\" alt=\"\" />\n" +
    "<img src=1.jpg     width=\"20\" height=\"50\"   border=\"0\" alt=\"\" /> ";var ubbImg = str.replace(/<img[^\/>]+\/?>/ig, function(){
      var imgWidth = (/width=[\'\"]?([^\'\"\s]+)/ig).exec(arguments[0]);
      var imgHeight = (/height=[\'\"]?([^\'\"\s]+)/ig).exec(arguments[0]);
      var imgSrc = (/src=[\'\"]?([^\'\"\s]+)/ig).exec(arguments[0]);
      var imgSize = (imgWidth && imgHeight)? "="+ imgWidth[1] + "," + imgHeight[1] : "";
      return "";
    });alert(ubbImg);
      

  8.   

    受教了,replace居然还能调方法的