本文详细介绍如何使用JavaScript的Math.random()函数生成两种常见类型的验证码。第一种为纯数字验证码,适用于简单场景;第二种为字母与数字混合验证码,并包含前端输入校验逻辑。通过具体的HTML结构、CSS样式及JS代码示例,帮助开发者快速实现简单的图形验证码功能。
纯数字验证码实现
第一种方案是生成纯数字验证码。在HTML结构中,定义一个用于显示验证码的容器,例如class为yzm的div元素。页面加载完成后,通过JavaScript获取该元素,并调用自定义的rand函数生成指定长度的随机数字字符串。每次点击该容器时,可以刷新验证码。核心逻辑在于利用Math.random()乘以10后向下取整,循环指定次数拼接出随机数字串。
纯数字验证码代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js验证码</title>
</head>
<body>
<div class="yzm" style="width: 20%;height: 300px;text-align: center;background-color: pink;line-height: 200px;"></div>
</body>
</html>
<script>
window.onload = function () {
var yzm=document.querySelector(".yzm");
//页面一加载完成就生成随机数调用rand()
yzm.innerHTML=rand(5);
//点击切换随机码
yzm.onclick=function() {
var num = rand(5);
this.innerHTML = num;
};
//生成随机码
function rand(number){
//用来存储产生的随机数
var num="";
for(var i=0;i<number;i++){
num+=Math.floor(Math.random()*10)
}
return num;
}
}
</script>
字母数字混合验证码及校验
第二种方案实现了字母与数字相结合的验证码,并增加了用户输入校验功能。HTML部分包含一个文本输入框、一个显示验证码的按钮以及一个验证按钮。CSS样式用于美化验证码显示效果,如字体、颜色和间距。JavaScript中,createCode函数负责生成包含大小写字母和数字的随机字符串。当用户点击验证按钮时,程序将用户输入的值与生成的验证码进行比对,若一致则提示正确,否则提示错误并刷新验证码。
混合验证码及校验代码示例
<html>
<head>
<meta charset="UTF-8">
<title>验证码</title>
<style type="text/css">
#code
{
font-family:Arial;
font-style:italic;
font-weight:bold;
border:0;
letter-spacing:2px;
color:blue;
}
</style>
</head>
<body>
<div>
<input type = "text" id = "input"/>
<input type = "button" id="code" onclick="createCode()"/>
<input type = "button" value = "验证" onclick = "validate()"/>
</div>
</body>
</html>
<script>
var code ; //在全局定义验证码
var number = 5;//验证码生成的个数
var checkCode = document.getElementById("code");
//产生验证码(页面一加载就生成)
window.onload = function (){
createCode();
};
//产生验证码(输入错误的时候刷新验证码,函数调用)
function createCode(){
code = "";
var codeLength = number;//验证码的长度
// var checkCode = document.getElementById("code");
var random = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R',
'S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',
's','t','u','v','w','x','y','z'];//随机数
for(var i = 0; i < codeLength; i++) {//循环操作
var index = Math.floor(Math.random()*random.length);//取得随机数的索引(random.length)
code += random[index];//根据索引取得随机数加到code上
}
checkCode.value = code;//把code值赋给验证码
}
//校验验证码
function validate(){
var inputCode = document.getElementById("input").value.toUpperCase(); //取得输入的验证码并转化为大写
if(inputCode.length <= 0) { //若输入的验证码长度为0
alert("请输入验证码!"); //则弹出请输入验证码
} else if(inputCode != code.toUpperCase() ) { //将随机产生的验证码转化为大写,若输入的验证码与产生的验证码不一致时
alert("验证码输入错误!@_@"); //则弹出验证码输入错误
createCode();//刷新验证码
document.getElementById("input").value = "";//清空文本框
}
else { //输入正确时
alert("正确^-^"); //弹出^-^
}
}
</script>
若代码示例存在不足,欢迎指正。希望上述内容能为您提供帮助。
总结
以上就是本文的全部内容,希望这些示例能对您的学习或工作提供参考价值。感谢支持,如需了解更多相关内容,请查看相关链接。