JavaScript使用简单正则表达式的数据验证功能示例


Posted in Javascript onJanuary 13, 2017

本文实例讲述了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>
Javascript 相关文章推荐
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
javascript实现自动输出文本(打字特效)
Aug 27 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
Sep 20 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
Move.js入门
Feb 08 Javascript
Canvas + JavaScript 制作图片粒子效果
Feb 08 Javascript
基于Node.js的WebSocket通信实现
Mar 11 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
layui table 参数设置方法
Aug 14 Javascript
JS实现的自定义map方法示例
May 17 Javascript
bootstrap网格系统使用方法解析
Jan 13 #Javascript
js 判断数据类型的几种方法
Jan 13 #Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 #Javascript
BootStrap表单验证实例代码
Jan 13 #Javascript
js实现随机抽选效果、随机抽选红色球效果
Jan 13 #Javascript
bootstrap滚动监控器使用方法解析
Jan 13 #Javascript
微信小程序 页面之间传参实例详解
Jan 13 #Javascript
You might like
php 全局变量范围分析
2009/08/07 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
移动节点的jquery代码
2014/01/13 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
中间件分为哪几类
2016/09/18 面试题
大学生旅游业创业计划书
2014/01/29 职场文书
区级文明单位申报材料
2014/05/15 职场文书
机械专业求职信范文
2014/07/15 职场文书
明星邀请函
2015/02/02 职场文书
西柏坡观后感
2015/06/08 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
golang json数组拼接的实例
2021/04/28 Golang
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python