javascript - 为什么我最后输出的车牌号全部是数字啊?明明数组里的是字母多啊!
PHP中文网
PHP中文网 2017-04-11 12:22:06
0
1
760

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&...
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">

header{

position:absolute;
width:224px;
height:34px;
left:281px;
top:25px;
text-align:center;
border:2px;
border-style:solid;
border-color:#F96;    
}

body-left{

position:absolute;
width:354px;
height:415px;
left:25px;
top:113px;
border:2px;
border-style:solid;
border-color:#F96;
}

body-right{

position:absolute;
width:354px;
height:415px;
left:396px;
top:113px;
border:2px;
border-style:solid;
border-color:#F96;
}        

</style>
<script>
var cpArr=new Array();//用数组来存储车牌里随机的值。
var t="";
var cpxianshi="";
var cpxianshiArr=new Array(5);//用于将cpArr里面产生的随机数显示到text里面。
var CpCity=["粤A","粤B","粤S"];
var City=["广州市","深圳市","东莞市"];
var flag=true; //用于当作开关;
var val; // 用于clearInterval;
function yizhiyaohao(){

var bxs=document.getElementById("yaohao");

    if(flag){
        bxs.value="停止摇号";
        
    var TD=setInterval(yaohao,100);
    val=TD;
        flag=false;
    }else
    {
           
        clearInterval(val); 
        bxs.value="开始摇号";
        flag=true;
        }
}

function yaohao(){

//摇号功能实现如下

    for(var i=65;i<91;i++)
  //先将26个英文字母存入数组。
    {
    if(i!=73&&i!=79)
    //除去 I和O两个字母。
         {
     t=String.fromCharCode(i);
     cpArr[i-65]=t;
         }
    
    }
    cpArr.splice(73-65,1);//删除遍历I O 出现的空值。
    cpArr.splice(78-65,1);
    for(var i=0;i<10;i++)
    {
    //在将0-9的数字追加到cpArr数组里。    
    cpArr.push(i);
    
    }
    var xs=document.getElementById("yhxianshi");

    //var js1=0;  //用于判断是否全为字母
    
    for(var i=0;i<cpxianshiArr.length;i++)
    {
        var suiji=parseInt((Math.random()*cpArr.length)); //将cpArr数组中的下标进行随机选取,存入suiji变量。
         cpxianshiArr[i]=cpArr[suiji];
         
        
    }
    
        var suijiCity=Math.floor((Math.random()*CpCity.length));
        var chepaiCity=CpCity[suijiCity];
        var DyCity=City[suijiCity];
    
        
        var xianshicp=cpxianshiArr.join("");
        xs.value="摇出了"+DyCity+"的车牌号为:"+chepaiCity+xianshicp;

    

}

</script>
</head>

<body>
<p id="header" >
广东省车牌摇号系统
</p>

<p id="body-left">
<p>广东省摇号系统:</p>
<input type="text" id="yhxianshi" width="200px" height="40px" style=" width:300px; height=500px; "/>

</p>
<p id="body-right">
<p>此系统专为广东省车辆摇号所使用,一切具有摇号资格者所摇得车牌都由A-Z(除I,O)以及0-9的字母或数字组成的5位数构成。
</p>

<input id="yaohao" type="button" style="width:129px; height:50px; left:199px; top:332px; position:absolute" value="开始摇号" onclick="yizhiyaohao()" >
</input>

</p>
</body>
</html>

为什么最后得到的5位车牌里,按道理应该是字母比数字多,为什么后面的这么多数字却很少的英文, 还有!如何判断让车牌不能为5个英文字母呢? 谢谢了

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(1)
大家讲道理

去随机的车牌号后5位,你可以把待选的字符放到一个字符串里"ABCDEFGHJKLMNPQRSTUVWXYZ0123456789",然后在这个字符串里随机取。
对于不能全是字母就简单了,正则表达式test一下就行

/\d+/.test(str) 返回true就不全是字母
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage