JS生成验证码

功能区
 taochengwei   JavaScript  验证码   2016-12-14   百度主动推送成功
正文区

Web应用中注册、登录使用验证码是很普遍的,如果对安全性要求不是很大,可以使用js生成并验证“验证码”。

本文转载于:https://my.oschina.net/147258369/blog/314145

作者:程序猿小明

代码:

<!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>
<title>JS生成验证码</title>
<style type="text/css">
.code {
background-image: url(code.jpg);
font-family: Arial;
font-style: italic;
color: Red;
border: 0;
padding: 2px 3px;
letter-spacing: 3px;
font-weight: bolder;
}
.unchanged {
border: 0;
}
</style>
<script language="javascript" type="text/javascript">  
var code; //在全局 定义验证码   
function createCode() {
    code = "";
    var codeLength = 6;//验证码的长度   
    var checkCode = document.getElementById("checkCode");
    var selectChar = new Array(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');//所有候选组成验证码的字符,当然也可以用中文的   

    for (var i = 0; i < codeLength; i++) {
        var charIndex = Math.floor(Math.random() * 36);
        code += selectChar[charIndex];
    }
    //alert(code);
    if (checkCode) {
        checkCode.className = "code";
        checkCode.value = code;
    }
}

function validate() {
    var inputCode = document.getElementById("input1").value.toUpperCase();//取得输入的验证码并转化为大写
    if (inputCode.length <= 0) {
        alert("请输入验证码!");
    } else if (inputCode != code) {
        alert("验证码输入错误!");
	createCode();//刷新验证码   
    } else {
	alert("^-^ OK");
    }
}
</script>
</head>
<body onload="createCode()">
<form action="#">
    <input type="text" id="input1" /> <input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br />
    <input id="Button1" onclick="validate();" type="button" value="确定" />
</form>
</body>
</html>

补充:

validate验证函数中,修改以下内容,

var inputCode = document.getElementById("input1").value;

改为:

var inputCode = document.getElementById("input1").value.toUpperCase();//取得输入的验证码并转化为大写

效果是,输入的字母转化为大写后验证,如果不修改,则必须符合大小写。