JavaScript
驗證碼
javascript
ctx.font = 'italic 24px Verdana';
html
<input type="hidden" id="hiddenCaptcha">
<canvas id="captchaCanvas" width="230" height="100"></canvas>
font width height
48 230 100
24 100 60
產生5碼不含0與大小寫字母Oo的範例
function generateCaptcha() {
var characters = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz';
var canvas = document.getElementById('captchaCanvas');
var ctx = canvas.getContext('2d');
// 清除畫布
ctx.clearRect(0, 0, canvas.width, canvas.height);
var captcha = '';
var captchaLength = 5; // 驗證碼長度
// 產生5位數字驗證碼
for (var i = 0; i < captchaLength; i++) {
var index = Math.floor(Math.random() * characters.length);
var digit = characters.charAt(index);
captcha += digit;
// 繪製每個數字
var x = 10 + i * 43; // 每個數字的x座標
var y = 70; // 數字的y座標
ctx.font = 'italic 24px Verdana'; //斜體字、大小、字型
ctx.fillStyle = "#351CA5";
ctx.fillText(digit, x, y);
}
// 將驗證碼存儲在隱藏欄位中
document.getElementById('hiddenCaptcha').value = captcha;
}
// 驗證使用者輸入
function checkCaptcha() {
var userCaptcha = document.getElementById('captchaInput').value;
var captchaInput = document.getElementById('hiddenCaptcha');
if (userCaptcha === captchaInput.value) {
document.getElementById('message').textContent = "驗證碼正確!";
document.getElementById('checkPass').value = "Passed";
} else {
document.getElementById('message').textContent = "驗證碼錯誤!";
document.getElementById('result').textContent = "";
generateCaptcha(); // 重新產生驗證碼
document.getElementById('checkPass').value = "Failed";
}
}