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函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
jquery仿微信聊天界面
May 06 jQuery
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
vue实现广告栏上下滚动效果
Nov 26 Vue.js
JavaScript实现京东快递单号查询
Nov 30 Javascript
原生js实现自定义难度的扫雷游戏
Jan 22 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 中include()与require()的对比
2006/10/09 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
element中的$confirm的使用
2020/04/26 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python完全新手教程
2007/02/08 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python logging模块用法示例
2018/08/28 Python
python写入文件自动换行问题的方法
2019/07/05 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
导游的职业规划书范文
2013/12/27 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
五一放假通知怎么写
2015/08/18 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
java泛型通配符详解
2021/07/25 Java/Android
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers