初学JS,写的第一个例子,直接上代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> window.function() { var oTxt=document.querySelector("#txt"); var oBtn=document.querySelector("#btn"); oBtn.onclick=function() { var num=oTxt.value; if(num=='' || num==undefined ||num==null) { alert("请输入QQ号!!!"); }else if(num.indexOf(" ")>=0) { alert("输入中有空格!!!"); }else if(isNaN(num)) { alert("请输入纯数字!!!"); }else if(num.charAt(0)==0) { alert("首位不能为0!!!"); }else if (parseInt(num)!=num) { alert("输入的数字中不能为小数!!!"); }else if(num<10000 || num>999999999) { alert("输入的数字必须在5位以上、10位以内"); }else { alert("你输入的QQ号为:"+oTxt.value); } } } </script> </head> <body> 请输入QQ号:<input type="text" id="txt"> <input type="button" id="btn" value="判断"><br /> 1、有没有输入<br /> 2、输入的是不是数字<br /> 3、不能有0在前面<br /> 4、不能是小数<br /> 5、输入的数字必须在5位以上、10位以内<br /> </body> </html>
判断首位是否为0,也可以用正则表示,在这里也说说吧!!
把num.charAt(0)==0
换成!(/^[1-9]\d*$/.test(num))
也可以:
正则表达式: /^[1-9]\d*$/ , 注意:/^表示开始,$/表示结束, 第一位不能为0,那就从1开始[1-9],后边是所有数字都可以用\d,最少出现0次,所以用* test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中有匹配的值返回 true ,否则返回 false
写的第一个js例子,感觉还不错。
2019年3月10日
自己看书看到了键盘事件,所以自己把这个例子修改了一下,有点击事件改为了键盘事件!!!
上代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <script> window.function() { var oTxt=document.getElementById("txt"); var oLi=document.getElementsByTagName("li"); var oSpan=document.getElementsByTagName("span")[0]; oLi[0].style.color="red"; oTxt.onkeyup=function() { var num=oTxt.value; if(num=='' || num==undefined ||num==null) { oLi[0].style.color="red"; oLi[1].style.color="black"; oLi[2].style.color="black"; oLi[3].style.color="black"; oLi[4].style.color="black"; }else if(num.indexOf(" ")>=0) { alert("输入中有空格!!!"); }else if(isNaN(num)) { oLi[0].style.color="black"; oLi[1].style.color="red"; oLi[2].style.color="black"; oLi[3].style.color="black"; oLi[4].style.color="black"; }else if(num.charAt(0)==0) { oLi[0].style.color="black"; oLi[1].style.color="black"; oLi[2].style.color="red"; oLi[3].style.color="black"; oLi[4].style.color="black"; }else if (parseInt(num)!=num) { oLi[0].style.color="black"; oLi[1].style.color="black"; oLi[2].style.color="black"; oLi[3].style.color="red"; oLi[4].style.color="black"; }else if(num<10000 || num>999999999) { oLi[0].style.color="black"; oLi[1].style.color="black"; oLi[2].style.color="black"; oLi[3].style.color="black"; oLi[4].style.color="red"; }else { oLi[0].style.color="black"; oLi[1].style.color="black"; oLi[2].style.color="black"; oLi[3].style.color="black"; oLi[4].style.color="black"; } oSpan.innerText=num; } } </script> </head> <body> 请输入QQ号:<input type="text" id="txt"> <ul li="list"> <li>有没有输入</li> <li>输入的不是数字</li> <li>首位不能为0</li> <li>不能是小数</li> <li>输入的数字必须在5位以上、10位以内</li> </ul> 你的QQ号为:<span style="color:blue"></span> </body> </html>
看看运行效果吧!
总感觉自己的代码还是有点死板!!!
继续加油吧!!!