本文实例讲述了JavaScript使用简单正则表达式的数据验证功能。分享给大家供大家参考,具体如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Register-reg</title> <script type="text/javascript" language="javascript"> function checkName() { var nameElement = document.getElementById("name"); //var regExp = /^(a-z)[^a-z\d_]/i; var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 var regExp2 = /^[A-Za-z]/i;//匹配字符串开始位置为字母 var resultElement = document.getElementById("resName"); if (nameElement.value.match(regExp) && nameElement.value.match(regExp2) && nameElement.value.length >= 6) { //匹配成功 //会员名为字母、数字、下划线组成,并且字母为开头,长度不小于6 resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "会员名为字母、数字、下划线组成,并且字母为开头,长度不小于6!"; return false; } } function checkPwd() { var pwdElement = document.getElementById("pwd"); var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 var regExp2 = /[a-zA-Z]/i; //匹配字母 var regExp3 = /\d/i; //匹配数字 var resultElement = document.getElementById("resPwd"); if (pwdElement.value.match(regExp) && pwdElement.value.match(regExp2) && pwdElement.value.match(regExp3) && pwdElement.value.length >= 6) { //匹配成功 //密码为字母、数字、下划线组成,并且必须有字母、数字,长度不小于6 resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "密码为字母、数字、下划线组成,并且必须有字母、数字,长度不小于6!"; return false; } } function checkPwd2() { var pwdElement = document.getElementById("pwd"); var pwd2Element = document.getElementById("pwd2"); var resultElement = document.getElementById("resPwd2"); if (pwdElement.value == pwd2Element.value) { //重输密码与之前密码完全匹配 resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "密码不一致!"; return false; } } function checkGentle() { var gentleElement = document.getElementById("gentle"); var resultElement = document.getElementById("resGentle"); if ((gentleElement.value == "男" || gentleElement.value == "女") || (gentleElement.value == "m" || gentleElement.value == "f") || (gentleElement.value == "male" || gentleElement.value == "famale")) { //性别判断是否在:男、女、male、famale、m、f 之内 resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "性别判断是否在:男、女、male、famale、m、f 之内!"; return false; } } function checkAge() { var ageElement = document.getElementById("age"); var resultElement = document.getElementById("resAge"); if (parseInt(ageElement.value) > 0 && parseInt(ageElement.value) <= 150) { //如果年龄在0~150之间 resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "年龄在0~150之间!"; return false; } } function checkMail() { var mailElement = document.getElementById("mail"); var regExp = /[^a-z0-9_]/gi; // 匹配非字母、数字、下划线的字符 var regExp2 = /[a-z]/gi; // 匹配字母 var resultElement = document.getElementById("resMail"); if (!mailElement.value.match(regExp)) {//如果出现非字母、数字、下划线的字符 resultElement.innerHTML = "邮箱地址不正确!"; return false; } else { if (mailElement.value.indexOf(".") - mailElement.value.indexOf("@") >= 2) { resultElement.innerHTML = ""; return true; } else { resultElement.innerHTML = "邮箱地址不正确!"; return false; } } } function checkTel() { var telElement = document.getElementById("tel"); var regExp = /\d{7,12}/g;// 匹配7~12位电话数字 var regExp2 = /[^0-9]/g; // 是否有数字以外的字符 var resultElement = document.getElementById("resTel"); if (telElement.value.match(regExp) && telElement.value.length <= 12) { if (telElement.value.match(regExp2)) { resultElement.innerHTML = "电话号码为纯数字,且位于7~12位之间!"; return false; } else { resultElement.innerHTML = ""; return true; } } else { resultElement.innerHTML = "电话号码为纯数字,且位于7~12位之间!"; //!telElement.value.match(regExp2) && return false; } } function checkAll() { if (checkName() && checkPwd() && checkPwd2() && checkGentle() && checkAge() && checkMail() && checkTel()) { alert("恭喜,填写的信息正确!"); } else { alert("错误,请确认填写的信息是否正确!"); } } //当窗体加载完成时执行 window.onload = function () { var inputElements = document.getElementsByTagName("input"); inputElements[0].onblur = function () { checkName(); } inputElements[1].onblur = function () { checkPwd(); } inputElements[2].onblur = function () { checkPwd2(); } inputElements[3].onblur = function () { checkGentle(); } inputElements[4].onblur = function () { checkAge(); } inputElements[5].onblur = function () { checkMail(); } inputElements[6].onblur = function () { checkTel(); } inputElements[7].onclick = function () { checkAll(); } } </script> <style type="text/css"> body{ font-size:16px; font-weight:600; font-family:微软雅黑; line-height:30px; } thead{ text-align:center; } input{ width:150px; } input[type=button]{ height:38px; font-size:20px; font-weight:600; } ul{ border:1px solid #c3c3c3; } li{ list-style-type:square; } </style> </head> <body> <form action="" method="post"> <table> <thead><tr><td colspan="2"><h2>表单验证</h2></td></tr></thead> <tr><td>会员名:</td><td><input type="text" id="name" /></td><td id="resName"></td></tr> <tr><td>密码:</td><td><input type="password" id="pwd" /></td><td id="resPwd"></td></tr> <tr><td>重复密码:</td><td><input type="password" id="pwd2" /></td><td id="resPwd2"></td></tr> <tr><td>性别:</td><td><input type="text" id="gentle" /></td><td id="resGentle"></td></tr> <tr><td>年龄:</td><td><input type="text" id="age" /></td><td id="resAge"></td></tr> <tr><td>电子邮件:</td><td><input type="text" id="mail" /></td><td id="resMail"></td></tr> <tr><td>联系号码:</td><td><input type="text" id="tel" /></td><td id="resTel"></td></tr> <tr><td></td><td><input type="button" value="注册" id="checkAll" /></td></tr> </table> </form> <ul> <li>会员名为字母、数字、下划线组成,并且字母为开头,长度不小于6</li> <li>密码为字母、数字、下划线组成,并且必须有字母、数字,长度不小于6</li> <li>性别判断是否在:男、女、male、famale、m、f 之内</li> <li>年龄在0~150之间</li> <li>邮箱地址</li> <li>电话号码为纯数字,且位于7~12位之间!</li> </ul> </body> </html>
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 群星《青春重置计划9新的凡人歌》[320KMP3][89.41MB]
- 苏曼《苏曼的夜晚HQII》[低速原抓WAV+CUE]
- 【电影原声】汉斯·季默《星际穿越》2014[FLAC+CUE整轨]
- 诹访内晶子AkikoSuwanai巴赫:小提琴协奏曲《J.S.BachViolinConcertos》(flac)
- 王力宏《十八般武艺》[低速原抓WAV+CUE]
- 王力宏《十八般武艺》[低速原抓WAV+CUE]
- 【爵士乐】VA-2024-ParamountJazzLoungeChillingExperience(FLAC)
- 群星《离歌 网剧原声带》[320K/MP3][249.78MB]
- 群星《离歌 网剧原声带》[FLAC/分轨][538.53MB]
- 群星《承欢记 电视剧影视原声带》[320K/MP3][109.99MB]
- 【欧美乡村】JohnnyLee-2024-13thOfJulyandEmotions(FLAC)
- 【流行爵士】PattiAustin-2024-LoveSongs(FLAC)
- 【爵士乐】VA-2024-SupremeLoungeChillSelectionJazzyVibeTunes(FLAC)
- 群星《承欢记 电视剧影视原声带》[FLAC/分轨][219.8MB]
- 群星《乘风2024 第1期》[320K/MP3][110.09MB]