表单验证
HTML结构
<form action="" id="form">
用户名:<input type="text" id="username"><span id="s_username"></span><br>
密码: <input type="text" id="password"><span id="s_password"></span><br>
邮箱: <input type="text" id="email"><span id="s_email"></span><br>
姓名: <input type="text" id="rename"><span id="s_rename"></span><br>
手机号:<input type="text" id="telphone"><span id="s_telphone"></span><br>
<input type="submit" value="提交">
</form>
主函数体
window.onload = function () {
document.getElementById('form').onsubmit = function () {
if (checkUsername && checkPassword && checkEmail && checkRename && checkTelphone) {
alert('信息匹配正确,表单成功提交');
} else {
alert('信息不完全匹配,请重新输入');
}
}
document.getElementById('username').onblur = checkUsername;
document.getElementById('password').onblur = checkPassword;
document.getElementById('email').onblur = checkEmail;
document.getElementById('rename').onblur = checkRename;
document.getElementById('telphone').onblur =checkTelphone;
}
校验用户名
function checkUsername() {
var username = document.getElementById('username').value;
var reg_username = /^([a-zA-Z0-9_-])/;
var flag = reg_username.test(username);
var s_username = document.getElementById('s_username')
if (flag) {
s_username.innerHTML = "<span color='green'>用户名符合格式</span>"
} else {
s_username.innerHTML = "<span color='red'>用户名不符合格式</span>"
}
return flag;
}
校验密码
function checkPassword() {
// 获取密码的值
var password = document.getElementById('password').value
// 定义正则表达式 \w表示匹配包括下划线的任何单词字符,等价于“[A-Za-z0-9_]”,密码6-18位
var reg_password = /^([a-zA-Z0-9]{6,18}$)/
// 判断值是否符合正则表达式的规则
var flag = reg_password.test(password)
// 提示信息
var s_password = document.getElementById('s_password')
if (flag) {
// 提示绿色对钩
s_password.innerHTML = "<span color='green'>密码输入正确</span>"
} else {
// 提示红色错误信息
s_password.innerHTML = "<span color='red'>密码输入错误</span>"
}
return flag
}
校验Email
function checkEmail() {
// 获取邮箱的值
var email = document.getElementById('email').value
// 定义正则表达式 \w表示匹配包括下划线的任何单词字符,等价于“[A-Za-z0-9_]”;[\u4E00-\u9FFF]表示中文字符编码区
var reg_email = /^([a-z0-9_\.-])+@([\da-z\.-])+(\.[a-z\.]{2,10})$/
// 判断值是否符合正则表达式的规则
var flag = reg_email.test(email)
// 提示信息
var s_email = document.getElementById('s_email')
if (flag) {
// 提示绿色对钩
s_email.innerHTML = "<span color='green'>Email格式正确</span>"
} else {
// 提示红色错误信息
s_email.innerHTML = "<span color='red'>Email格式错误!</span>"
}
return flag
}
校验姓名
function checkRename() {
// 获取姓名的值
var rename = document.getElementById('rename').value
// 定义正则表达式 \w表示匹配包括下划线的任何单词字符,等价于“[A-Za-z0-9_]”
var reg_rename = /^[\u4e00-\u9fa5]{2,4}$/
// 判断值是否符合正则表达式的规则
var flag = reg_rename.test(rename)
// 提示信息
var s_rename = document.getElementById('s_rename')
if (flag) {
// 提示绿色对钩
s_rename.innerHTML = "<span color='green'>输入正确</span>"
} else {
// 提示红色错误信息
s_rename.innerHTML ="<span color='red'>用户名错误错误!</span>"
}
return flag
}
校验电话号码
function checkTelphone() {
// 获取电话号码的值
var telphone = document.getElementById('telphone').value
// 定义正则表达式 \w表示匹配包括下划线的任何单词字符,等价于“[A-Za-z0-9_]”
var reg_telphone = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/
// 判断值是否符合正则表达式的规则
var flag = reg_telphone.test(telphone)
// 提示信息
var s_telphone = document.getElementById('s_telphone')
if (flag) {
// 提示绿色对钩
s_telphone.innerHTML = "<span color='green'>电话号码正确</span>"
} else {
// 提示红色错误信息
s_telphone.innerHTML = "<span color='red'>电话号码错误!</span>"
}
return flag
}
效果图
