main .leftpanel{display: inline-block;width: 5.3rem;height: 3.5rem;border-right: .01rem solid #E7E7E7;margin: .6rem 0 0 1.8rem;}main .leftpanel > form > div{padding-bottom: .15rem;}main .leftpanel > form > div > span{display: inline-block;width: .7rem;height: .16rem;font:.14rem/.16rem "宋体";text-align: right;}main .leftpanel > form > div > input{width: 2.6rem;height: .35rem;box-sizing: border-box;border:.01rem solid #E7E7E7;margin: 0 .05rem;text-indent: .03rem;color:#9999B3;}main .leftpanel > form > div > em{font: .12rem/1 "宋体";}main .leftpanel form .verify .verifylabel{width: .7rem;height: .35rem;font:.14rem/.35rem "宋体";text-align: right;}main .leftpanel form .verify .verificationbox{width: 2.6rem;height: .35rem;box-sizing: content-box;border:.01rem solid #E7E7E7;margin-left: .08rem;display: flex;}main .leftpanel form .verify .verificationbox > input{flex: 4;height: 100%;box-sizing: border-box;text-indent: .03rem;color:#9999B3;}main .leftpanel form .verify .verificationbox #code{flex: 1;height: 100%;color: #2040A0;background-color: #ffffff;font: .2rem/.35rem "Arial";padding:0 .1rem;}main .leftpanel form .verify .verificationbox #getmessage{flex: 2;height: 100%;color: #333333;font: .12rem/.35rem "宋体";}main .leftpanel form .verify .verificationbox #getmessage:hover{color: #FF4A00;}main .leftpanel form .verify > em{display: inline-block;/* width: .7rem; */height: .35rem;font:.12rem/.35rem "宋体";padding-left: .08rem;}main .leftpanel > form > #register{width: 2.6rem;height: .4rem;color: #ffffff;background-color: #FF4A00;margin-left: .75rem;cursor: pointer;font-weight: bold;}main .leftpanel > form > .hint{margin: .15rem 0 0 2.4rem;color: #666666;}main .leftpanel > form > .hint > a{color: #FF4A00;text-decoration: underline;}main .desc{font: 14px/30px "宋体";margin: .6rem 0 0 1.1rem;color: #666666;}main .desc > h4{color: #333333;}
Javascript
window.onload=function(){/*
Register verification
*/// Get form and emvar registerForm = document.getElementById('registerform');var marks = registerForm.getElementsByTagName('em');// console.log(marks);// flag: true info right, flag:false info wrongvar flag =true;// Get username var username = registerform.username;// console.log(username);// phone regExpvar userReg =/^1[3-9]\d{9}$/;judgeNull(username, marks[0],'请输入手机!');
username.onchange=function(){// change color
marks[0].style.color ='#FF6600';// judge regExp// if it is the wrong valueif(!userReg.test(this.value)){
marks[0].innerHTML ='账号格式不正确!'
flag =false;}else{
marks[0].innerHTML ='<i class = "iconfont icon-dui1"></i>';
flag =true;}}// Get passwordvar password = registerForm.password;// console.log(password);judgeNull(password, marks[1],'请输入密码!');// password reg can be classified into low medium and high// low version: all number or all alphabetsvar lowReg =/^\d{6,18}$|^[a-zA-Z]{6,18}$/;// medium version: number + alphabets, first is lettervar mediumReg =/(?!^[a-zA-Z]{6,18}$)^[a-zA-Z][0-9a-zA-Z]{5,17}$/;// high version: number + alphabets + symbols, first is lettervar highReg =/(?!^[!@#$%^&*()_+-=]{6,18}$)(?!^\d{6,18}$)(?!^[a-zA-Z]{6,18}$)^[a-zA-Z][0-9a-zA-Z!@#$%^&*()_+-=]{5,17}$/;
password.onchange=function(){// change color
marks[1].style.color ='#ff6600';// first judge the lengthif(password.value.length <6|| password.value.length >18){
marks[1].innerHTML ='密码应该为6-20位之间!'
flag =false;}// Judge three version of passwordif(lowReg.test(this.value)){
marks[1].innerHTML ='低';
flag =true;}elseif(mediumReg.test(this.value)){
marks[1].innerHTML ='中';
flag =true;}elseif(highReg.test(this.value)){
marks[1].innerHTML ='高';
flag =true;}else{
marks[1].innerHTML ='密码格式不正确!';
flag =false;}}// Get confirmpasswordvar confirmPassword = registerForm.confirmpassword;// console.log(confirmPassword);judgeNull(confirmPassword, marks[2],'请再次输入密码!')// judge whether confirmPassword equals to passwordjudgeEqual(confirmPassword, password, marks[2],'与原密码不一致!');// get verificationvar verification = registerForm.verification;// console.log(verification);// get random number buttonvar randomCode = document.getElementById('code');// console.log(randomCode);var newCode =getRandomCode(5);
randomCode.innerHTML = newCode;verificationEqual(verification, newCode, marks[3],'验证码错误!');// When click the randomCode button, generate new code
randomCode.onclick=function(){
newCode =getRandomCode(5);this.innerHTML = newCode;verificationEqual(verification, newCode, marks[3],'验证码错误!');}judgeNull(verification, marks[3],'请输入验证码!');// get message, getmessagevar message = document.getElementById('message');var getMessage = document.getElementById('getmessage');// console.log(message);
getMessage.onclick=function(){// get random random codevar messageCode =getRandomCode(6);alert(messageCode);// judgeEqual(message, messageCode, marks[4],'验证码不正确!');verificationEqual(message, messageCode, marks[4],'验证码错误!');}judgeNull(message, marks[4],'请输入验证码!');/*
Store user data into local storage
*/// Determine whether the user array exists in the current cache.// If there is no array, create an array to store the data sourcevar userArr =[];if(!localStorage.userArr){// use not exist, create userArr in cache
localStorage.userArr =JSON.stringify(userArr);}else{// user exists, save existed user information
userArr =JSON.parse(localStorage.userArr);}// console.log(localStorage);// console.log(userArr);// Get register button// var registerButton = registerForm.register;// console.log(registerButton);
registerForm.onsubmit=function(){// If all the verification passes, user info correct// console.log(flag);if(!flag){alert('注册失败!');returnfalse;}// register uservar username = registerForm.username.value;var password = registerForm.password.value;// console.log(username, password);// save data -- as array var userInfo ={
username: username,
password: password
}// console.log(userInfo.username);// judge whether the user has registered// Traverse array to find whether to registerfor(var i =0; i < userArr.length; i++){// console.log(userArr[i]);if(userArr[i].username == userInfo.username){alert('用户已注册, 请直接登录! 如果忘记密码, 请修改密码!');
window.location ='./login.html';returnfalse;}}// alert register succeedalert('注册成功, 去登录');// User has not been registered, register account
userArr.push(userInfo);// console.log(userArr);// Save userInfo into cache
localStorage.userArr =JSON.stringify(userArr);// console.log(localStorage);// jump to login page
window.location ='./login.html';// prevent submit eventreturnfalse;}functionjudgeNull(name, mark, content){
name.onblur=function(){// if the value is '' // console.log(username.value);if(this.value ==''){
mark.innerHTML = content;
mark.style.color ='#999999';
flag =false;}}}functionjudgeEqual(pre, next, mark, content){
pre.onchange=function(){// change color
mark.style.color ='#ff6600';if(this.value != next.value){
mark.innerHTML = content;}else{
mark.innerHTML ='<i class = "iconfont icon-dui1"></i>';}}}functionverificationEqual(pre, next, mark, content){
pre.onchange=function(){
mark.style.color ='#ff6600';if(this.value != next){
mark.innerHTML = content;
flag =false;}else{
mark.innerHTML ='<i class = "iconfont icon-dui1"></i>';
flag =true;}}}functiongetRandomCode(n){// n: the digit that we wantvar str ='0123456789';// save random codevar s ='';for(var i =0; i < n; i++){var num = Math.floor(Math.random()* str.length);
s = s + str[num];}return s;}}