我有下列 字符串
“你好a你好aa你好13”讲上面字符串 拆分成"你好你好你好""aaa""13"
也就是 是汉字就组成一个一行 是字母就组成一行 是数字就组成一行。急。谢谢了

解决方案 »

  1.   


    var isCn=function(val){
        var reg=/^[\u4e00-\u9fa5]+$/;
        if(!reg.test(val)) return false;
        else return true;
    };
    var isEn=function(val){
    var reg=/^[a-zA-Z]+$/;
    if(!reg.test(val)) return false;
    else return true;
    };
    var isNum=function(val){
    var reg=/^-?\d+$/;
    if(!reg.test(val)) return false;
    else return true;
    };
    var str="你好a你好aa你好13".split("");
    var cn=en=num="";
    for(var i=0;i<str.length;i++){
      if(isCn(str[i])) cn +=str[i];
      else if(isEn(str[i])) en +=str[i];
      else if(isNum(str[i])) num+=str[i];
    }
    alert("汉字:" + cn + "\n字母:" + en + "\n数字:" + num);
      

  2.   

    数字和字母的ascii可以知道 然后用一个变量把字母取出来 一个变量记录数字 最后把原字符中的数字和字母替换掉
      

  3.   

    <script type="text/javascript">
    <!--
    var str="你好a你好aa你好13"
    alert(str.replace(/[^\u4e00-\u9fa5]/g,""))
    alert(str.replace(/[^a-z]/gi,""))
    alert(str.replace(/\D/gi,""))
    //-->
    </script>
      

  4.   


    var str = "你好a你*12好vc你#$好#你324好rtr你"
    String.prototype.getStrParts = function() {
    var v = this;
    var reg = {
    n: (/\d+/g),
    e: (/[a-z]+/gi),
    c: (/[\u4e00-\u9fa5]/g)
    }
    for(var i in reg){
    reg[i] = v.match(reg[i]).join('');
    }
    return reg;
    }
    strArr = str.getStrParts();
    alert(strArr.n);
    alert(strArr.e);
    alert(strArr.c);