str="[aa22233]sdfsd67f54[bbb]";
str=str.replace(/(\[.*?\])|[^\d]/ig,"");
alert(str);

解决方案 »

  1.   

    str1="[aa22233]sdfsd67f54[bbb] "
    Function ReplaceQuestion1(QStr)
    Dim re
    Set re = new RegExp
    re.IgnoreCase = True
    re.Global = True
    re.Pattern = "\[.[^\]]*?\]"
    QStr = re.Replace(QStr,"")
    Set re = Nothing
    Set re = new RegExp
    re.IgnoreCase = True
    re.Global = True
    re.Pattern = "\d"
    Set Matches =re.Execute(QStr)
    Set re = Nothing
    For Each Match in Matches
    wstr=wstr&Match.Value
    Next
    ReplaceQuestion1= wstr
    End Function
    response.Write ReplaceQuestion1(str1)
      

  2.   

    var str='[aa22233]sdfsd67f54asd233[bbb]';
    var tmp=str.match(/^\[.*?\](.*?)\[.*?\]$/);
    tmp=tmp[1].match(/\d+/g);
    for(i=0;i<tmp.length;i++){
    alert(tmp[i]);
    }
      

  3.   

    var str ="[aa22233]sdfsd67f54[bbb]";
    var str2="strResult.match(oReg2);"
    var strResult1="",strResult2="";
    var oReg1=/^(\[.*?\])(.*?)(\[.*?\])$/gi;
    var oReg2=/\d+/gi;
    strResult1=str.replace(oReg1,"$2");
    strResult2=str.replace(oReg1,"$2");
    alert(strResult1.match(oReg2));
    alert(strResult2.match(oReg2));
      

  4.   

    谢谢各位,上面基本都正确,可能我表达不好,我最后是想从
    [aa22233]sdfsd67.22f54asd233[22bbb]得到 [aa22233]sdfsd*****f**[22bbb] ,就是不显示出数字,用×代替
    (注意67.22变为*****)这点上面好像都不行。
      

  5.   

    var ss ="[aa22233] 你好67的54[bbb]jj12[dfadf121]";
    var rg = /\[(.*?)\]/g;//"[.*].*?(\d+)[.*]";var show = ss.replace(rg,"");
    show = show.match(/(?=[^\d]*)(\d+)/g)
      

  6.   

    str2="[aa22233]sdfsd67f54[bbb] "
    Function ReplaceQuestion2(QStr)
    Dim re
    Set re = new RegExp
    re.IgnoreCase = True
    re.Global = True
    re.Pattern = "\[.[\]]*?\]|[\d]"
    QStr = re.Replace(QStr,"*")
    ReplaceQuestion2= QStr
    End Function
    response.Write ReplaceQuestion2(str2)这个还没测试
      

  7.   

    [aa*****]sdfsd**.**f**[bbb] ,不对
      

  8.   


    //一次到位的替换不会,替换了3次.....
    var str="[aa22233]sdfsd67.22f54asd233[22bbb]";
    var RegEp=/(\[[^\]]*\])/g;
    var Arr=new Array();
    var m,Key=65;
    while((m=RegEp.exec(str)))
    {
      Arr.push({kw:String.fromCharCode(Key),value:m[1]});
      str=str.replace(m[1],"$"+String.fromCharCode(Key)+"$")
      Key++;
    }
    RegEp=/(\d+\.?\d+)/g
    str=str.replace(RegEp,function($3){var str="";for(var i=0;i<$3.length;i++) str+="*"; return str;});
    for(i=0;i<Arr.length;i++)
    {
      str=str.replace("$"+Arr[i].kw+"$",Arr[i].value);
    }
    alert(str)
      

  9.   

    var ss ="[aa222331] 你好67的54[bbb]jj12[dfadf121]";
    var rg = /(?=[^\d]*)(\d+)/g;//"[.*].*?(\d+)[.*]";
    //debugger;/\[(.*?)\]/g;//
    sss = ss.replace(/\[(.*?)\]/g,"");
    //alert( ss.match(rg,"g"));
    //alert(sss);
    //alert(sss.match(rg,"g"))
    var show = ss.replace(rg,function (a,b,c){
        if(sss.match(rg,"g").input.indexOf(a)<0)return a;
        var ico="";
        for(var i=0;i<a.length;i++)
        {ico+="*"}
        return ico;
        }
    );
    alert(show)
      

  10.   

    var ss ="[aa22233] 你好67的54[bbb][aa22233]jj12[dfadf121]";
    var re = /((?:\[[^\]]*\])?[^\[]*?)(\d+(?:\.\d+)?)/ig;
    ss = ss.replace(re,function(a,b,c){var arr = new Array(c.length+1);return b + arr.join("*");});
    alert(ss);
      

  11.   

    <script>
    var str = "这个也要行[aa22233] 你好67的54[bbb].";
    var newStr = "";
    str.replace(/(\[.+?\])(.+?)(\[.+?\])/ig,function()
    {
    var arg = arguments;
    if(arg.length < 4)return;
    newStr = arg[1] + arg[2].replace(/\d/g,"*") + arg[3];
    });
    alert(newStr);
    </script>
      

  12.   


    <script>
    var str = "这个也要行[aa22233] 你好67的54[bbb].";
    var newStr = "";
    str.replace(/(\[.+?\])(.+?)(\[.+?\])/ig,function()
    {
    var arg = arguments;
    if(arg.length < 4)return;
    newStr = arg[1] + arg[2].replace(/\d/g,"*") + arg[3];
    });
    alert(newStr);
    </script>
      

  13.   

    不好意思. 上面把newStr没写成+=,改成+=就OK了.正确的如下:<script>
    var str = "[aa22233] 你好67的54[bbb][aa22233]jj12[dfadf121]";
    var newStr = "";
    str.replace(/(\[.+?\])(.+?)(\[.+?\])/ig,function()
    {
    var arg = arguments;
    if(arg.length < 4)return;
    newStr += arg[1] + arg[2].replace(/\d/g,"*") + arg[3];
    });
    alert(newStr);
    </script>
      

  14.   

    var ss ="[aa22233] 你好67的54111[bbb][aa22233]jj12[dfadf121]";
    var re = /((?:\[[^\]]*\])?[^\[]*?)(\d*(?:\.\d+)?)/ig;
    ss = ss.replace(re,function(a,b,c){        var arr = new Array(c.length+1);
            return b + arr.join("*");
        }
    );
    alert(ss);
    这样貌似就行了
      

  15.   


    //少了个?号
    var ss ="[aa22233] 你好67.123的54[bbb][aa22233]jj12[dfadf121]";
    var re = /((?:\[[^\]]*\])?[^\[]*?)(\d+(?:\.\d+)?)?/ig;
    ss = ss.replace(re,function(a,b,c){var arr = new Array(c.length+1);return b + arr.join("*");});
    alert(ss);
      

  16.   

    晕~~ 居然把分都给抄我代码的人.每次都是这样... 走了离开CSDN这个伤心地.
      

  17.   

    没阿,老大你的代码我有改动:
    \d+(?:   ->   d*(?:  把+改成*了
      

  18.   


    对于用户来说需要的是最后的结果,不是过程。
    TO gzdiablo :这也说明一点,你实力很强,但做事情不细。