Js 正则获取Html元素

var html = $("#summaryTemplate").html();
            var imageMath = /<img [^<,>]*(?=target-type=("|')replace("|'))[^/,<,>]*\/>/;
            var scriptMath = /<script [^<,>]*(?=target-type=("|')replace("|'))[^/,<,>]*><\/script>/;
            var linkMath = /<link [^<,>]*(?=target-type=("|')replace("|'))[^/,<,>]*\/>/;
            alert(html.match(imageMath));
var ht="<img src='/11.jpg' target-type='replace' />asf      <img src='/12.jpg' target-type='replace' />                <img src='/13.jpg' target-type='replace' />"

ht.match(imageMath)

 

为什么Math返回的数组不是 多个Img对象,而是

["<img src="/11.jpg" target-type='replace' />", "'", "'"]
不明白。。。。
 
后来验证是我的错,正则中 有g配置,是否下移至下一个目标。
 
正确
  var attrbuteMath = "(?:\\w+)\\s*(?:=[^{,},<,>]+)";
            var srcMath = "src(?:=[^{,},<,>]+)";
            var hrefMath = "href(?:=[^{,},<,>]+)";
            var scriptMath = "<script\\s+(?:" + attrbuteMath + ")*><\/script>";
            var ge = new RegExp(scriptMath,"gi");
            // var html = "<script  asdfsadf='asdfsaf' asf=aaadsdfsdf  style='' src=''  ><\/script>asdfsaf<script  asdfsadf='asdfsaf' asf=''aa adsdfsdf    ><\/script>";
            var html = $("#txtHtml").val();
            var result = ge.exec(html);
            alert(result);

g表示要搜索字符串出现的,而不是找到第一个匹配后就停止。如果还要模式不区分大小写
  ,可以给第二个参数添加字符 i  

posted @ 2014-03-06 01:25  Shikyoh  阅读(10816)  评论(0编辑  收藏  举报