从这样些数字中01 02 03 04 05 06 07 08 09 10 11
随机取出5个数来组合成
02,05,08,09,02  他
这5个数不能重复,以逗号格开
我想写这样的正责

解决方案 »

  1.   

    var arr = [01,02,03,04,05,06,07,08,09,10,11];
    var arrs = [];
    var obj = {};
    for(var i=0; i<5; i++) {
    obj[i] = Math.floor(Math.random()*11);
        arrs.push(arr[obj[i]]);
        arr.splice(obj[i], 1);
    }
    alert(arrs);
      

  2.   

    //原理:用输入的字符转成数组一个个去对应删除定义的数组,对应不到就报错。
    var input="02,05,08,09,02";//输入的值
    var str=input.split(",");//转成数组
    var arr=["01","02","03","04","05","06","07","08","09","10","11"];//定义的数组
        for(var i=0;i<str.length;i++){
            var b=true;
            for(var n=0;n<arr.length;n++){
                if(str[i]==arr[n]){
                    b=false;
                    arr.splice(n,1);
                }
            }
            if(b){
                alert(str[i]+"有误!");
                break;
            }
        }
      

  3.   

    随手写了一个逻辑或,等有时间再简化》reg = /([^,]{2})(?=.*,\1)|^(?!([0-9]{2},){4}[0-9]{2}$)/g请注意逻辑关系:var reg = /([^,]{2})(?=.*,\1)|^(?!([0-9]{2},){4}[0-9]{2}$)/g;
    if (reg.test(待检测的字符串)) {
       alert("格式错误,情重新输入!")
    }
      

  4.   

    这还是比较好写的   先用正则判断格式是否对(是否是5个数以及是否用逗号隔开)   通过match返回一个数组  然后你再判断输入的是不是这11个数