<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>测试</title>
    </head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var str =  '<p>第一页</p>'
              +'<div style="page-break-after: always;" class="cke_pagebreak" title="分页符" contentEditable="false" data-cke-display-name="pagebreak" aria-label="分页符"></div>'
              +'<p>第二页</p>'
              +'<div style="page-break-after: always;" class="cke_pagebreak" title="分页符" contentEditable="false" data-cke-display-name="pagebreak" aria-label="分页符"></div>'
              +'<p>第三页</p>';
              
    var pattern = /<div style=\"page-break-after: always;\".*class=\"?cke_pagebreak\"?.*><\/div>/gmi;
    var arr = str.split(pattern);
    $.each(arr, function(key, val) { 
        alert(val);   
    }); 
});
</script>大虾帮我看下为什么匹配不出第二页

解决方案 »

  1.   

    修改成非贪婪的 var pattern = /<div style=\"page-break-after: always;\".*?class=\"?cke_pagebreak\"?.*?><\/div>/gi;
      

  2.   

    多谢
    追问:
        var str =  '<p>chrome</p>'
                  +'<<DIV style="page-break-after: always;" contenteditable="false" title="分页符" aria-label="分页符" DATA-cke-display-NAME="pagebreak" class="cke_pagebreak"></DIV>'
                  +'<p>firefox</p>'
                  +'<DIV style="page-break-after: always;" title="分页符" aria-label="分页符" DATA-cke-display-NAME="pagebreak" class="cke_pagebreak" contenteditable="false"></DIV>'
                  +'<p>ie7</p>'
                  +'<DIV style="PAGE-BREAK-AFTER: always" class=cke_pagebreak title=分页符 contentEditable=FALSE DATA-cke-display-NAME="pagebreak" aria-label="分页符"></DIV>'
                  +'<p>ie8</p>'
                  +'<DIV style="PAGE-BREAK-AFTER: always" class=cke_pagebreak title=分页符 contentEditable=FALSE DATA-cke-display-NAME="pagebreak" aria-label="分页符"></DIV>'
                  +'<p>ie9</p>'
                  +'<DIV style="page-break-after: always;" class="cke_pagebreak" title="分页符" contentEditable="false" DATA-cke-display-NAME="pagebreak" aria-label="分页符"></DIV>'
                  ;
    这样的字符串怎么分割
      

  3.   

    没有其他的内容的话直接        var pattern = /<div[^>]+><\/div>/gi;
            var arr = str.split(pattern);
            alert(arr)
      

  4.   


    额,不能这么写,必须用到style和class,因为内容里也可能含有div,这么写,内容里的div也分割了
      

  5.   

    我晕你的内容少了分号。要不原来的正则即可。。判断是否有分号就行了。。
    DIV style="PAGE-BREAK-AFTER: always"    var pattern = /<div style=\"page-break-after: always;?\".*?class=\"?cke_pagebreak\"?.*?><\/div>/gi;
        var arr = str.split(pattern);
        alert(arr)