<img onload="var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" alt=精彩图片 src="/p/2011/0506/439896/b_vip_F14DD92EEF0709507F20B8F36D1D6C0E.jpg" border=0>正则表达式:
<[^\>]*>
意图是将html标签全部去掉。结果如下:
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" alt=精彩图片 src="/p/2011/0506/439896/b_vip_F14DD92EEF0709507F20B8F36D1D6C0E.jpg" border=0>结果被width>0,这个大于号拦截,导致截取不正确。
请问大家怎么写这个表达式,可以防止被这个大于号拦截。

解决方案 »

  1.   

    @"(?x)</?\w+(\s+\w+\s*=\s*(?<k>['""])?(?(k)((?!\k<k>).)*(?'-k'\k<k>)|[^>\s]*))*>"
      

  2.   

    加上 "[^"]*" 将 引号部分消耗掉/<("[^"]*"|[^\>])*?>/
      

  3.   

    看见这个标题,想起了俺当年来这里发的第一个帖子
    http://topic.csdn.net/u/20070314/15/bfe1dbbd-c17f-4ac6-84ce-f129bd00f140.html
    路过感叹一下~
      

  4.   


    var s  = "htmlcode=[<img onload='var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}' alt='精彩图片' src='/p/2011/0506/439896/b_vip_F14DD92EEF0709507F20B8F36D1D6C0E.jpg' border=0>]";
    var reg = /<([^>'"]+(('|").*?(\3))?)+>/;alert(s2.replace(reg2,""));
      

  5.   

    var s  = "htmlcode=[<img onload='var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}' alt='精彩图片' src='/p/2011/0506/439896/b_vip_F14DD92EEF0709507F20B8F36D1D6C0E.jpg' border=0>]";
    var reg = /<([^>'"]+(('|").*?(\3))?)+>/;alert(s.replace(reg,""));
      

  6.   

    var s  = "htmlcode=[<img onload='var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}' alt='精彩图片' src='/p/2011/0506/439896/b_vip_F14DD92EEF0709507F20B8F36D1D6C0E.jpg' border=0>]";
    var reg = /<([^>'"]+(('|").*?(\3))?)+>/;alert(s.replace(reg,""));