正则递归,PHP可以实现,js 的没见过,不知道是否支持

解决方案 »

  1.   

    莫非这是天书?/re/.replace(string, function(arg[,arg n]){});
      

  2.   

    没看出什么来 reg2 内层匹配 本列可用 /ON/ig 根本没有用一个 replace 就够了
      

  3.   

    只是举了例子 不一定是ON 只是符合reg2的定义
      

  4.   


    譬如是要将 ???x???x???<??x?????x??>??x??x??
    转化为     ???x???x???<??xx??>??x??x??
    去除<>之间的xx之间的内容 replace恐怕不够吧
      

  5.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/,"$1$2"))</script>
    一般的都可以   除非一些特殊情况
      

  6.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/,"$1$2"))</script>
    一般的都可以   除非一些特殊情况
      

  7.   

    铭轩兄的方式是可以的
    建立模式1的匹配 然后保留模式2以外的部分
    然后模式1替换成 $1 模式2替换 $2
    利用循环test完成模式1中所有模式2的替换此例还能否用递归解决呢
      

  8.   

    不需要循环  他自己有个g匹配
    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  9.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  10.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>上面的代码重发一下 
      

  11.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
    重发一下
      

  12.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  13.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  14.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  15.   


    <script language="javascript">
    var a="???x???x??? <??x???x??>??x??x??<??x???x??>11<??x???x??>22x???x" 
    alert(a.replace(/(<[^>]*?)x[^x]*?x([^>]*?>)/g,function(a,b,c){ return b+c;}))</script>
      

  16.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  17.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  18.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  19.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  20.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  21.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON????<sgeONsadfsf>>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  22.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON????<sgeONsadfsf>>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  23.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON????<sgeONsadfsf>>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  24.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON????<sgeONsadfsf>>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script> 
      

  25.   

    <script language="javascript"> 
    var a="???????ON?????? <ON???ON>??????ON??? <??ON?? <ON????<sgeONsadfsf>>??>ON??";
    alert(a.replace(/<([^>]*)>/g,function(a,b){ return "<"+b.replace(/ON/g,"OFF")+">";})) </script>