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

JavaScript06

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>

如下

var i = 0

[lbl] start:

console.log("Hello, world!")

i++

if(i <538) goto start

缴费才三个小时,一节课没上,就要扣40%违约金,这有道理吗?10月8日,市民小王就遇到这样一个经历。她花了6480元,在“JS舞蹈”金牛凯德店报名了舞蹈课程。然而,缴费三个小时后,小王发现自己年底将搬的新家,距离这家机构的分校都比较远,便提出退费申请,但机构却称,已签订合同,拒绝退款;如果坚持要退费,将扣除30%的违约金和10%的工本费。某平台用户评价展示图小王对此无法接受,“交了钱才三个小时,一节课没上,也没到协议上约定的服务时间,为啥退费就要扣掉两千五百多?”记者注意到,小王的“退费难”不是个例。在部分地区,“JS舞蹈”还以“包高薪工作”吸引学员,但不少学员在报名后陷入退费维权的困境。对此,四川纵目律师事务所王海依律师表示,虽然还没到协议约定的上课时间,但小王在10月8日晚提出退费请求时,合同已经生效,此时提出的退费诉求,受协议约束,“协议对退费作出的约定做了加粗处理,且协议中已写明协议中的条款,在这种情况下根据《民法典》的相关规定该格式条款有效。但是该条款违约金约定过高,学员可以主张请求予以减少。”学员:一节课没上申请退款“JS舞蹈”机构要扣除40%违约金毕业两年,小王一直想学习舞蹈。对比了三四家机构后,小王最终锁定一家名为“JS舞蹈”全国连锁店(金牛凯德店)的机构,“当时感觉不错,(店铺在)美团上几乎没有一个低分评价,而且基本上都是50字以上的好评,还有环境图片,(所以我)当天就添加店长微信,并预约了课程体验。”10月8日下午18:50左右,小王在店内顾问的带领下了解课程详情。小王得知,“JS舞蹈”源自广东东莞,已有近十年的经营资质和培训经验,店内开设有4种课程,包括一年的兴趣班4980元,两年兴趣班7980元,教练班和店长班均是学习两年,学费上万。“JS舞蹈”金牛凯德店宣传截图考虑到年底后要搬家到成华区龙潭寺,小王还专门询问能否转校,“(顾问说)‘JS舞蹈’在成都设有十多家分店,可随时根据学员的需求安排转校。而且课程有效期两年,每天都可以去上课。”小王表示,出于对该机构十年资质经验的信任,以及可随时办理转校的便捷,便签订合同,缴费6480元,购买了两年的学习课程,并拒绝了对方分期付款的建议。《JS协议书》显示,小王购买了爵士舞、平台领舞和街舞三个项目,服务时间为2021年10月10日至2023年10月10日,还签订了一张“一经收费概不退款”的收据。《JS协议书》协议约定,“协议生效之日起7日内,如乙方未接受甲方任何服务安排且因个人原因要求解除协议并退款的,甲方按实收金额扣除甲方未履行本协议已支出的有关费用及违约金40%(含10%资料工本费,违约金30%)后,将退回乙方60%”“如乙方享受甲方服务,将根据甲方服务进度相应扣减服务费,每次服务500元(工本费10%+违约金30%+课时费),”协议盖章显示为“成都捷思曼文化传媒有限公司”。《JS协议书》10月8日晚十点左右,小王回到家里,地图搜索后才发现,新家距离最近的“JS舞蹈”分校约12公里,“太远了,我当晚就微信联系店长,提出退费。”小王还告诉记者,退费当晚,她首先拨打了“JS舞蹈”收据上的两个联系电话,但一个空号一个停机,内心不安的她在网上一搜索,发现有大量关于“JS舞蹈”机构的投诉举报内容,更坚定了她退费的决心。但退费并没有那么容易,小王表示,机构以签订了合同为由拒绝了她的退款请求,称如果要退费将扣除30%的违约金和10%的工本费,“交了钱才三个小时,一节课没上,也没到协议上约定的服务时间,为啥退费就要扣掉两千五百多?”10月9日,小王还到店进行了协商,双方并未达成一致意见。10月15日,小王向金牛区人民法院提起诉讼,目前正在等待法院通知诉前调解。记者调查:成都有10余家“JS舞蹈”机构“JS舞蹈”曾以“包高薪工作”吸引学员报名11月5日,记者在某网络平台成都范围内搜索出该品牌机构10家店:JS舞蹈全国连锁(四川总部)、JS舞蹈全国连锁(成华旗舰校区)、JS舞蹈全国连锁(金牛凯德店)、JS舞蹈全国连锁(南站旗舰店)、JS舞蹈全国连锁(大丰校区)、JS舞蹈全国连锁(468伊藤店)、JS舞蹈全国连锁(龙泉校区)、JS舞蹈全国连锁(建设路校区)、JS舞蹈全国连锁(青羊万达校区)和JS舞蹈全国连锁(金沙店)。点击进入“JS舞蹈”全国连锁(金牛凯德店),店铺评分5.0,260条用户评价中,只有1条低分评论。记者按咨询提示添加机构工作人员微信后,发现其朋友圈疑似存在用受益者名义做宣传的图片。如2021年10月21日,其朋友圈展示有“学教练班毕业的优秀教练”,“学舞蹈前:工厂妹 月薪3000元;学舞蹈后:做钢管舞教练月薪7000元+”等内容。金牛凯德店工作人员朋友圈截图工作人员表示,他们有季卡、年卡等多种报名形式,“一个季度2680元,一年4980元,目前做活动4000元左右”。随后,网页搜索时,记者还注意到,在四川、广东、江苏、广西、湖南、湖北等地拥有众多分店的JS舞蹈,不少分店疑似正面临着多位学员维权的问题。黑猫投诉显示,截至11月5日下午一点,“JS舞蹈”培训报名中心共有59条投诉,都未进行回复。投诉内容中,“退款”“网贷”是出现频率较高的词语,还有用户称机构“以介绍工作为由,然后引导消费办卡。”关于“JS舞蹈”退费和“包高薪工作”,澎湃新闻在11月2日曾进行过报道,“JS舞蹈”曾以这样的海报吸引学员报名:“教练班特训3-6个月毕业,颁发全能教练资格证书,包分配工作。每日工作3.5小时,月薪7000-20000元+提成+奖金。”JS舞蹈的宣传海报报道中提到,今年4月,学员小陆在“JS舞蹈”广州天河区员村校区店报了教练班,报名费1.5万余元,有效期两年,期间可去上课。7月份,小陆到JS舞蹈上了5节课后,因对课程质量不满意提出退费,被告知已超过退费期限,不予退费。事实上,在“JS舞蹈”遇到退费难等问题的不止小陆和小王,在一个名为“JS舞蹈培训学员维权群”的QQ群里,共有50余人,其中部分学员表示,自己被JS舞蹈“套路”,支付了数千至数万不等的报名费,但在对课程不满意提出退费时,却陷入退费难的窘境。“JS舞蹈培训学员维权群”机构起底:总部与各连锁店无股权联系成都一分校经营范围疑似不符合要求针对上述情况,11月5日,记者多次拨打了“JS舞蹈”官网客服热线,电话却一直关机。随后,记者拨通了官网公布的熊某某的手机号码,对方表示,该号码仅为加盟号码,可以解答加盟问题,不解答退费事宜。但对于记者提出的“成都的‘JS舞蹈’机构是直营店还是加盟店”,对方却未正面回答,“所有的(问题)都要靠总部座机电话来查,建议换个时间拨打总部电话。”官网显示,“JS舞蹈”创办于2011年6月3日,在全国已经拥有近千家门店,遍布广东、江苏、广西、湖南、湖北、山东、内蒙古、四川、江西、福建等省市地区。同时,宣传称,“JS舞蹈”有近3000名舞蹈教练进驻,开设有包括专业钢管舞、爵士舞、Hip-Hop、酒吧领舞、TB秀、绸缎舞等多门课程。“JS舞蹈连锁总部”微信公众号显示,公众号主体为东莞极速舞蹈培训有限公司,但成立时间为2017年6月26日,而部分机构宣称成立已有10年。“JS舞蹈连锁总部”微信公众号截图天眼查显示,东莞极速舞蹈培训有限公司成立于2017年,是一家专业舞蹈连锁机构,拥有“JS”品牌注册商标,注册资本100万元,法定代表人为廖吉庭,大股东莫丽青持股70%,经营范围包括舞蹈培训。天眼查截图从股权结构图来看,东莞极速舞蹈培训有限公司无分支机构,也就意味着与全国“近千家门店”或无直接关联。以小王报名的成都捷思曼文化传媒有限公司为例,天眼查显示,该公司成立于2020年10月,注册资本8万元,法定代表人邓琪蔓是唯一股东。天眼查截图值得注意的是,机构对外宣称可以教授舞蹈,甚至招收“少儿班”,经营范围包含健身服务,却不包括舞蹈培训。根据学员提供的联系电话,记者联系上了成都捷思曼文化传媒有限公司法定代表人邓琪蔓,提出了有关学员退费的问题。“我们是健身房,”邓琪蔓表示,关于退费,他们在学员签字报名前就说清楚了,一律不退款,退款需要承担40%的违约金,“因为我们销售运营的成本很高,(吸引学员)进店就要支付很多费用。”但对于部分“JS舞蹈”机构宣称的“包分配工作”,邓琪蔓却表示,只有教练班的学员学完后才可以去当教练,“他们如果(教练班学员)在这里学舞蹈学得比较好的话,我们可以推荐他到‘JS舞蹈’分校去当教练。”此外,关于公司与总部的关系,邓琪蔓称,“我们是独立运营,每年给总部交费用,总部也会对我们有一些要求和控制。”律师说法:退费诉求受协议约束学员可以主张请求减少违约金小王比较困惑,“报名三个小时就提出退款,一节课都没上,合同生效了吗?另外,舞蹈机构的违约金是不是太高了?”对此,四川纵目律师事务所王海依律师从法律角度进行了解释。焦点一“虽然还没到协议约定的上课时间,但小王在10月8日晚提出退费请求时,合同就已经生效,此时提出的退费诉求,受协议约束。”根据《民法典》第五百零二条规定:“依法成立的合同,自成立时生效,但是法律另有规定或者当事人另有约定的除外。”王海依律师表示,小王虽然和“JS舞蹈”机构签订的协议委托服务时间为2021年10月10日至2023年10月10日,但这并不是对合同生效时间的另行约定。焦点二“协议对退费作出的约定做了加粗处理,且协议中已写明协议中的条款,在这种情况下根据《民法典》的相关规定该格式条款有效。但是该条款违约金约定过高,学员可以主张请求予以减少。”王海依律师认为,根据法律规定,当事人主张约定的违约金过高请求予以适当减少的,人民法院应当以实际损失为基础,兼顾合同的履行情况、当事人的过错程度以及预期利益等综合因素,根据公平原则和诚实信用原则予以衡量,并作出裁决。当事人约定的违约金超过造成损失的百分之三十的,一般可以认定为《民法典》第五百八十五条“过分高于造成的损失”。焦点三“舞蹈机构宣传海报上的“包分配工作”“包教包会”“月薪7000-20000”的字眼,涉嫌虚假宣传。同时,培训广告也不得用受益者的名义或者形象作推荐、证明。”《广告法》第二十四条规定,教育、培训广告不得对教育、培训的效果作出明示或者暗示的保证性承诺,也不得利用科研单位、学术机构、教育机构、行业协会、专业人士、受益者的名义或者形象作推荐、证明。舞蹈机构违反广告法规定,发布虚假广告的,由工商行政管理部门责令停止发布广告,责令广告主在相应范围内消除影响,处广告费用三倍以上五倍以下的罚款,广告费用无法计算或者明显偏低的,处二十万元以上一百万元以下的罚款;两年内有三次以上违法行为或者有其他严重情节的,处广告费用五倍以上十倍以下的罚款,广告费用无法计算或者明显偏低的,处一百万元以上二百万元以下的罚款,可以吊销营业执照,并由广告审查机关撤销广告审查批准文件、一年内不受理其广告审查申请。王海依律师建议,要签合同报名的学员,在签订合同之前要先仔细看合同涉及的内容,对于将来合同履行可能会发生争议的条款,更要多注意争议该如何处理,必要时可以请法律人士对合同风险先进行审核。