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  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM