现有的一个js正则,有这样的作用,将text中的<hr
class=\"system-pagebreak\" /> 替换成
<div>-------</div>。script脚本如下:
<script>
var alltext = \'<b>123</b><hr
class=\"system-pagebreak\" /><b>456</b>\';
var rep = \'<div>-------</div>\';
alltext =
alltext.replace(/<hr\\s+class=(\\\"|\')system-pagebreak(\\\"|\')\\s*\\/*>/i,
rep);
</script>但是目前遇到问题了,text中的hr,有另外的属性
var alltext = \'<b>123</b><hr
class=\"system-pagebreak\"
title=\"任意字符,不是写死的\"
/><b>456</b>\';这时原来的正则不起作用了:/<hr\\s+class=(\\\"|\')system-pagebreak(\\\"|\')\\s*\\/*>/i

解决方案 »

  1.   

    这个是JavaScript的正则,不是PHP的,你贴错地方了。
      

  2.   

    /<hr\s+class=(\\"|\')system-pagebreak(\\"|\')\s*.*\/>/si
      

  3.   

    var alltext = '\'<b>123</b>'
     +'<hr a=1 class=\'system-pagebreak\' b=2/><b>456</b>\'';
    var rep = '\'<div>-------</div>\'';
    var pat = /<hr[^>]*class\s*=\s*(\"|\')system-pagebreak\1[^>]*>/ig

    alert(alltext.replace(pat,rep));
      

  4.   

    逗号?
    我的结果:
    '<b>123</b>'<div>-------</div>'<b>456</b>'
      

  5.   

    现在又变成这个要求了...该如何写?
    麻烦了......
    现有的一个js正则,有这样的作用,将text中的<hr
    class=\\\\\\\\\\\\\\\"system-pagebreak\\\\\\\\\\\\\\\" /> 
    替换成
    <div>-------</div>。script脚本如下:
    <script>
    var alltext = \\\\\\\\\\\\\\\'<b>123</b><hr
    class=\\\\\\\\\\\\\\\"system-pagebreak\\\\\\\\\\\\\\\"
    /><b>456</b>\\\\\\\\\\\\\\\';
    var rep = \\\\\\\\\\\\\\\'<div>-------</div>\\\\\\\\\\\\\\\';
    alltext =
    alltext.replace(/<hr\\\\\\\\\\\\\\\\s+class=(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\')system-pagebreak(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\')\\\\\\\\\\\\\\\\s*\\\\\\\\\\\\\\\\/*>/i,
    rep);
    </script>但是目前遇到问题了,text中的hr,有另外的属性
    var alltext = \\\\\\\\\\\\\\\'<b>123</b><hr
    class=\\\\\\\\\\\\\\\"system-pagebreak\\\\\\\\\\\\\\\"
    title=\\\\\\\\\\\\\\\"任意字符,不是写死的\\\\\\\\\\\\\\\"
    /><b>456</b>\\\\\\\\\\\\\\\';这时原来的正则不起作用了:/<hr\\\\\\\\\\\\\\\\s+class=(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\')system-pagebreak(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"|\\\\\\\\\\\\\\\')\\\\\\\\\\\\\\\\s*\\\\\\\\\\\\\\\\/*>/i
      

  6.   

    自己动手改一下吧。。咋这么多斜杠阿。。
    var alltext = '\\\\\\\\\\\\\\\'<b>123</b><hr '
     +'class=\\\\\\\\\\\\\\\"system-pagebreak\\\\\\\\\\\\\\\" '
     +'title=\\\\\\\\\\\\\\\" 任意字符,不是写死的\\\\\\\\\\\\\\\" '
     +'/><b>456</b>\\\\\\\\\\\\\\\'';
     
         var rep = '\'<div>-------</div>\'';
         var pat = /<hr[^>]*class\s*=\s*([\\\\]+"|')system-pagebreak\1[^>]*>/ig
    alert(alltext.replace(pat,rep));