“2006年3月2日”---->2006-3-2
or 改正则表达式

解决方案 »

  1.   

    function Chinese(num)  //将阿拉伯数字翻译成中文的大写数字
    {
        if(!/^\d*(\.\d*)?$/.test(num)){alert("Number is wrong!"); return false;}    var AA = new Array("零","一","二","三","四","五","六","七","八","九");
        var BB = new Array("","十","百","千","万","亿","点","");
        
        var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";    for(var i=a[0].length-1; i>=0; i--)  //author: meizz
        {
            switch(k)
            {
                case 0 : re = BB[7] + re; break;
                case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0]))
                         re = BB[4] + re; break;
                case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
            }
            if(k%4 == 2 && a[0].charAt(i)=="0" && a[0].charAt(i+2) != "0") re = AA[0] + re;
            if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
        }    if(a.length>1) //加上小数部分(如果有小数部分)
        {
            re += BB[6];
            for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
        }
        return re;
    }//上面这个函数对于你这个问题来说显得有点大材小用了。不过你就将就着用吧var s = "2006年3月02日";
    s = s.replace(/(\d+)/g, function(a){return Chinese(a)});
    alert(s);