JS 怎么制作数字、字母、汉字混合的验证码

JavaScript07

JS 怎么制作数字、字母、汉字混合的验证码,第1张

/***************************************************/

/**效果倒是出来了,但是不是十分好看*********/

/**建议还是单选汉字或者去掉汉字看看*******/

/**************************************************/

<html>

<head>

<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 = 100//验证码的长度

var checkCode = document.getElementById("checkCode")

checkCode.value = ""

var selectChar = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','\u7684','\u4e00','\u4e86','\u662f','\u6211','\u4e0d','\u5728','\u4eba','\u4eec','\u6709','\u6765','\u4ed6','\u8fd9','\u4e0a','\u7740','\u4e2a','\u5730','\u5230','\u5927','\u91cc','\u8bf4','\u5c31','\u53bb','\u5b50','\u5f97','\u4e5f','\u548c','\u90a3','\u8981','\u4e0b','\u770b','\u5929','\u65f6','\u8fc7','\u51fa','\u5c0f','\u4e48','\u8d77','\u4f60','\u90fd','\u628a','\u597d','\u8fd8','\u591a','\u6ca1','\u4e3a','\u53c8','\u53ef','\u5bb6','\u5b66','\u53ea','\u4ee5','\u4e3b','\u4f1a','\u6837','\u5e74','\u60f3','\u751f','\u540c','\u8001','\u4e2d','\u5341','\u4ece','\u81ea','\u9762','\u524d','\u5934','\u9053','\u5b83','\u540e','\u7136','\u8d70','\u5f88','\u50cf','\u89c1','\u4e24','\u7528','\u5979','\u56fd','\u52a8','\u8fdb','\u6210','\u56de','\u4ec0','\u8fb9','\u4f5c','\u5bf9','\u5f00','\u800c','\u5df1','\u4e9b','\u73b0','\u5c71','\u6c11','\u5019','\u7ecf','\u53d1','\u5de5','\u5411','\u4e8b','\u547d','\u7ed9','\u957f','\u6c34','\u51e0','\u4e49','\u4e09','\u58f0','\u4e8e','\u9ad8','\u624b','\u77e5','\u7406','\u773c','\u5fd7','\u70b9','\u5fc3','\u6218','\u4e8c','\u95ee','\u4f46','\u8eab','\u65b9','\u5b9e','\u5403','\u505a','\u53eb','\u5f53','\u4f4f','\u542c','\u9769','\u6253','\u5462','\u771f','\u5168','\u624d','\u56db','\u5df2','\u6240','\u654c','\u4e4b','\u6700','\u5149','\u4ea7','\u60c5','\u8def','\u5206','\u603b','\u6761','\u767d','\u8bdd','\u4e1c','\u5e2d','\u6b21','\u4eb2','\u5982','\u88ab','\u82b1','\u53e3','\u653e','\u513f','\u5e38','\u6c14','\u4e94','\u7b2c','\u4f7f','\u5199','\u519b','\u5427','\u6587','\u8fd0','\u518d','\u679c','\u600e','\u5b9a','\u8bb8','\u5feb','\u660e','\u884c','\u56e0','\u522b','\u98de','\u5916','\u6811','\u7269','\u6d3b','\u90e8','\u95e8','\u65e0','\u5f80','\u8239','\u671b','\u65b0','\u5e26','\u961f','\u5148','\u529b','\u5b8c','\u5374','\u7ad9','\u4ee3','\u5458','\u673a','\u66f4','\u4e5d','\u60a8','\u6bcf','\u98ce','\u7ea7','\u8ddf','\u7b11','\u554a','\u5b69','\u4e07','\u5c11','\u76f4','\u610f','\u591c','\u6bd4','\u9636','\u8fde','\u8f66','\u91cd','\u4fbf','\u6597','\u9a6c','\u54ea','\u5316','\u592a','\u6307','\u53d8','\u793e','\u4f3c','\u58eb','\u8005','\u5e72','\u77f3','\u6ee1','\u65e5','\u51b3','\u767e','\u539f','\u62ff','\u7fa4','\u7a76','\u5404','\u516d','\u672c','\u601d','\u89e3','\u7acb','\u6cb3','\u6751','\u516b','\u96be','\u65e9','\u8bba','\u5417','\u6839','\u5171','\u8ba9','\u76f8','\u7814','\u4eca','\u5176','\u4e66','\u5750','\u63a5','\u5e94','\u5173','\u4fe1','\u89c9','\u6b65','\u53cd','\u5904','\u8bb0','\u5c06','\u5343','\u627e','\u4e89','\u9886','\u6216','\u5e08','\u7ed3','\u5757','\u8dd1','\u8c01','\u8349','\u8d8a','\u5b57','\u52a0','\u811a','\u7d27','\u7231','\u7b49','\u4e60','\u9635','\u6015','\u6708','\u9752','\u534a','\u706b','\u6cd5','\u9898','\u5efa','\u8d76','\u4f4d','\u5531','\u6d77','\u4e03','\u5973','\u4efb','\u4ef6','\u611f','\u51c6','\u5f20','\u56e2','\u5c4b','\u79bb','\u8272','\u8138','\u7247','\u79d1','\u5012','\u775b','\u5229','\u4e16','\u521a','\u4e14','\u7531','\u9001','\u5207','\u661f','\u5bfc','\u665a','\u8868','\u591f','\u6574','\u8ba4','\u54cd','\u96ea','\u6d41','\u672a','\u573a','\u8be5','\u5e76','\u5e95','\u6df1','\u523b','\u5e73','\u4f1f','\u5fd9','\u63d0','\u786e','\u8fd1','\u4eae','\u8f7b','\u8bb2','\u519c','\u53e4','\u9ed1','\u544a','\u754c','\u62c9','\u540d','\u5440','\u571f','\u6e05','\u9633','\u7167','\u529e','\u53f2','\u6539','\u5386','\u8f6c','\u753b','\u9020','\u5634','\u6b64','\u6cbb','\u5317','\u5fc5','\u670d','\u96e8','\u7a7f','\u5185','\u8bc6','\u9a8c','\u4f20','\u4e1a','\u83dc','\u722c','\u7761','\u5174','\u5f62','\u91cf','\u54b1','\u89c2','\u82e6','\u4f53','\u4f17','\u901a','\u51b2','\u5408','\u7834','\u53cb','\u5ea6','\u672f','\u996d','\u516c','\u65c1','\u623f','\u6781','\u5357','\u67aa','\u8bfb','\u6c99','\u5c81','\u7ebf','\u91ce','\u575a','\u7a7a','\u6536','\u7b97','\u81f3','\u653f','\u57ce','\u52b3','\u843d','\u94b1','\u7279','\u56f4','\u5f1f','\u80dc','\u6559','\u70ed','\u5c55','\u5305','\u6b4c','\u7c7b','\u6e10','\u5f3a','\u6570','\u4e61','\u547c','\u6027','\u97f3','\u7b54','\u54e5','\u9645','\u65e7','\u795e','\u5ea7','\u7ae0','\u5e2e','\u5566','\u53d7','\u7cfb','\u4ee4','\u8df3','\u975e','\u4f55','\u725b','\u53d6','\u5165','\u5cb8','\u6562','\u6389','\u5ffd','\u79cd','\u88c5','\u9876','\u6025','\u6797','\u505c','\u606f','\u53e5','\u533a','\u8863','\u822c','\u62a5','\u53f6','\u538b','\u6162','\u53d4','\u80cc','\u7ec6')

for(var i=0i<codeLengthi++) {

var charIndex = Math.floor(Math.random()*550)

code +=selectChar[charIndex]

}

if(code.length != codeLength){

createCode()

}

checkCode.value = code

}

function validate () {

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

if(inputCode.length <=0) {

alert("请输入验证码!")

return false

}

else if(inputCode != code ){

alert("验证码输入错误!")

createCode()

return false

}

else {

alert("OK")

return true

}

}

</script>

</head>

<body onload="createCode()">

<input type="text" id="input1" />

<input type="text" id="checkCode" class="code" style="width: 1000px" /><a href="#" onclick="createCode()">看不清楚</a><input id="Button1" onclick="validate()" type="button" value="确定" />

<script></script>

</body>

</html>

根据你的提问,是选择页面上一个日期,然后判断被选择的日期是星期几么?\x0d\x0a如果是:我给出的js如下:\x0d\x0a// js code\x0d\x0a// code描述:\x0d\x0a// year和date好说,就是你页面选择的实际值。这里要注意month,假如你页面选择的为7月,\x0d\x0a// 这里 的month应当为 7-1;因为在js中,表示月份的数值是从 0 到 11 之间的整数(1月至\x0d\x0a// 12 月)。\x0d\x0a// \x0d\x0a// 代码思路:使用页面选择的年月日创建一个Date对象,然后getDay()就是当前日期在一周中\x0d\x0a// 的哪一天\x0d\x0a// \x0d\x0a// 完整代码加测试代码如下,你根据实际需要改动下就OK了。\x0d\x0avar year = 2011, month = 6, date = 23// month=6表示7月\x0d\x0avar dt = new Date(year, month, date), dt2 = new Date()\x0d\x0avar weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]\x0d\x0aalert(weekDay[dt.getDay()]+"\r\n"+weekDay[dt2.getDay()])

<div>

<div style="">组合的结果</div>

<textarea id="zuhe" style="height:40%"></textarea>

<div style="">排列的结果</div>

<textarea id="pailie" style="height:40%"></textarea>

</div>

<script>

zuhe()

pailie()

function pailie(){ 

//不考虑顺序,组合问题(arr1中的3个数按从左到右顺序,其他按从小到大顺序)

//从3,5,9,6,11里边取3个,有C(5,3)=5*4*3/(3*2*1)=10中取法;

//再从剩下的(11-3)=8个数里边取两个,有C(8,2)=8*7/(2*1)=28种取法。

//共有10*28=280种排列方式,去掉里边[3,5,9,6,11]的排列(C(5,3)*1=10种),所以最终结果为280-10=270

//也就是说生成的arr2里边有270个元素。

var arr1 = [3, 5, 9, 6, 11]

//5选3

var r3 = []

var r5 = []

var i, j, k, a, m, n

for(i=0i<3i++){ 

for(j=i+1j<4j++){ 

for(k=j+1k<5k++){ 

r3.push([arr1[i], arr1[j], arr1[k]])

//获取剩余的8个数

var r8 = []

for (m = 1 m <= 11 m++) {

if (m == arr1[i] || m == arr1[j] || m == arr1[k]) continue

r8.push(m)

}

//8选2

for (m = 0 m < 7 m++) {

for (n = m + 1 n < 8 n++) {

if (arr1.indexOf(r8[m]) == -1 || arr1.indexOf(r8[n]) == -1) {

//筛掉两个数都是arr1里边的

r5.push([arr1[i], arr1[j], arr1[k], r8[m], r8[n]])

}

}

}

}

}

}

console.log(r3.length)

console.log(r5.length)

var tf = document.getElementById("pailie")

tf.value = r5.join("\n")

}

function zuhe() {

//考虑顺序,排列问题

//从3,5,9,6,11里边取3个,有A(5,3)=5*4*3=60中取法;

//再从剩下的(11-3)=8个数里边取两个,有A(8,2)=8*7=56种取法。

//共有60*56=3360种排列方式,去掉里边[3,5,9,6,11]的排列(共有A(5,5)=5*4*3*2*1=120种),所以最终结果为3360-120=3240种

//也就是说生成的arr2里边有3240个元素。

var arr1 = [3, 5, 9, 6, 11]

//5选3

var r3 = []

var r5 = []

var i, j, k, a, m, n

for (i = 0 i < 5 i++) {

for (j = 0 j < 5 j++) {

if (j == i) continue

for (k = 0 k < 5 k++) {

if (k == i || k == j) continue

r3.push([arr1[i], arr1[j], arr1[k]])

//获取剩余的8个数

var r8 = []

for (m = 1 m <= 11 m++) {

if (m == arr1[i] || m == arr1[j] || m == arr1[k]) continue

r8.push(m)

}

//8选2

for (m = 0 m < 7 m++) {

for (n = m + 1 n < 8 n++) {

if (arr1.indexOf(r8[m]) == -1 || arr1.indexOf(r8[n]) == -1) {

//筛掉两个数都是arr1里边的

r5.push([arr1[i], arr1[j], arr1[k], r8[m], r8[n]])

r5.push([arr1[i], arr1[j], arr1[k], r8[n], r8[m]])

}

}

}

}

}

}

console.log(r3.length)

console.log(r5.length)

var tf = document.getElementById("zuhe")

tf.value = r5.join("\n")

}

</script>

也可以下载附件,直接双击打开。