我正在动态生成capthca代码,如下所示
$(document).ready(function() {
DrawCaptcha();
});
function DrawCaptcha() {
var a = Math.ceil(Math.random() * 10) + '';
var b = Math.ceil(Math.random() * 10) + '';
var c = Math.ceil(Math.random() * 10) + '';
var d = Math.ceil(Math.random() * 10) + '';
var e = Math.ceil(Math.random() * 10) + '';
var f = Math.ceil(Math.random() * 10) + '';
var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' ' + f;
$(".captha-img")[0].innerHTML = code;
}
这一切都很好。
但是现在,我面临的问题是,
我需要一个恰好6位数的Capthcha代码,但有时正在生成的capthacha超过6位数。
你能告诉我如何解决这个问题吗?
答案 0 :(得分:2)
将Math.ceil
更改为Math.floor
,它将始终返回6位数字:
function DrawCaptcha() {
var a = Math.floor(Math.random() * 10) + '';
var b = Math.floor(Math.random() * 10) + '';
var c = Math.floor(Math.random() * 10) + '';
var d = Math.floor(Math.random() * 10) + '';
var e = Math.floor(Math.random() * 10) + '';
var f = Math.floor(Math.random() * 10) + '';
var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' ' + f;
$(".captha-img")[0].innerHTML = code;
}
您的代码存在的问题是,每当Math.random()
向您返回9.0
以上的任何内容时,它就会将其四舍五入为10.这就是为什么您有时会看到超过6位的原因。
答案 1 :(得分:1)
您可以使用.substring()
方法,如下所示: -
function DrawCaptcha() {
var a = Math.ceil(Math.random() * 10) + '';
var b = Math.ceil(Math.random() * 10) + '';
var c = Math.ceil(Math.random() * 10) + '';
var d = Math.ceil(Math.random() * 10) + '';
var e = Math.ceil(Math.random() * 10) + '';
var f = Math.ceil(Math.random() * 10) + '';
var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d + ' ' + e + ' ' + f;
$(".captha-img")[0].innerHTML = code.substring(0,12);
}
上面的代码将提供一个固定的6位数作为capthcha代码。