JavaScript正则表达式实现注册信息校验功能


Posted in Java/Android onMay 30, 2022

Java和JavaScript正则表达式的对比 Java中也有正则表达式,默认情况下必须要精确匹配 ;而在JS中默认是模糊匹配,只要字符串包含了正则表达式的内容就返回true

正则表达式 匹配字符串 Java中匹配结果 JavaScript中匹配结果
\d{3} a123b false true
^\d{3} 123b false true
\d{3}$ a123 false true
^\d{3}$ 123 true true

注册信息校验

需求

  1. 在JS中使用正则表达式进行验证。
  2. 用户名:只能由英文字母和数字组成,长度为4~16个字符,并且以英文字母开头
  3. 密码: 大小写字母和数字6-20个字符
  4. 确认密码:两次密码要相同
  5. 电子邮箱: 符合邮箱地址的格式 /^\w+@\w+(.[a-zA-Z]{2,3}){1,2}$/
  6. 手机号:/^1[34578]\d{9}$/
  7. 生日:生日的年份在1900~2009之间,生日格式为1980-5-12或1988-05-04的形式,/^((19\d{2})|(200\d))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/

案例分析

  • 创建正则表达式
  • 得到文本框中输入的值
  • 如果不匹配,在后面的span中显示错误信息,返回false
  • 如果匹配,在后面的span中显示一个打勾图片,返回true
  • 写一个验证表单中所有的项的方法,所有的方法都返回true,这个方法才返回true.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证注册页面</title>
    <style type= "text/css">
        body {
            margin: 0;
            padding: 0;
            font‐size: 12px;
            line‐height: 20px;
        }
        .main {
            width: 525px;
            margin‐left: auto;
            margin‐right: auto;
        }
        .hr_1 {
            font‐size: 14px;
            font‐weight: bold;
            color: #3275c3;
            height: 35px;
            border‐bottom‐width: 2px;
            border‐bottom‐style: solid;
            border‐bottom‐color: #3275c3;
            vertical‐align: bottom;
            padding‐left: 12px;
        }
        .left {
            text‐align: right;
            width: 80px;
            height: 25px;
            padding‐right: 5px;
        }
        .center {
            width: 280px;
        }
        .in {
            width: 130px;
            height: 16px;
            border: solid 1px #79abea;
        }
        .red {
            color: #cc0000;
            font‐weight: bold;
        }
        div {
            color: #F00;
        }
        </style>
    <script type="text/javascript">
        //验证表单中所有的项
        function checkAll () {
//所有的方法都返回true,这个方法才返回true
            return checkUser() && checkMail();
        }
        //验证用户名
        function checkUser () {
//1. 创建正则表达式
            var reg = /^[a‐zA‐Z][a‐zA‐Z0‐9]{3,15}$/;
//2. 得到文本框中输入的值
            var value = document.getElementById("user").value;
//3. 如果不匹配,在后面的span中显示错误信息,返回false
            if (reg.test(value)==false) {
                document.getElementById("userInfo").innerHTML = "用户名不正确";
                return false;
            }
//4. 如果匹配,在后面的span中显示一个打勾图片,返回true
            else {
                document.getElementById("userInfo").innerHTML = "<img src='img/gou.png' width='15'/>";
                return true;
            }
        }
        //验证邮箱
        function checkMail () {
            //1. 创建正则表达式
            var reg = /^\w+@\w+(\.[a‐zA‐Z]{2,3}){1,2}$/;
//2. 得到文本框中输入的值
            var value = document.getElementById("email").value;
//3. 如果不匹配,在后面的span中显示错误信息,返回false
            if (reg.test(value)==false) {
                document.getElementById("emailInfo").innerHTML = "邮箱格式不正确";
                return false;
            }
//4. 如果匹配,在后面的span中显示一个打勾图片,返回true
            else {
                document.getElementById("emailInfo").innerHTML = "<img src='img/gou.png' width='15'/>";
                return true;
            }
        }
    </script>
</head>
<body>
<form action="server" method="post" id="myform" onsubmit="return checkAll()">
    <table class="main" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td><img src="img/logo.jpg" alt="logo" /><img src="img/banner.jpg" alt="banner" /></td>
        </tr>
        <tr>
            <td class="hr_1">新用户注册</td>
        </tr>
        <tr>
            <td style="height:10px;"></td>
        </tr>
        <tr>
            <td>
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <!‐‐ 长度为4~16个字符,并且以英文字母开头 ‐‐>
                        <td class="left">用户名:</td>
                        <td class="center">
                            <input id="user" name="user" type="text" class="in" onblur="checkUser()"/>
                            <span style="color: red" id="userInfo"></span>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能为空, 输入长度大于6个字符 ‐‐>
                        <td class="left">密码:</td>
                        <td class="center">
                            <input id="pwd" name="pwd" type="password" class="in" />
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能为空, 与密码相同 ‐‐>
                        <td class="left">确认密码:</td>
                        <td class="center">
                            <input id="repwd" name="repwd" type="password" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能为空, 邮箱格式要正确 ‐‐>
                        <td class="left">电子邮箱:</td>
                        <td class="center">
                            <input id="email" name="email" type="text" class="in" onblur="checkMail()"/>
                            <span id="emailInfo" style="color: red;"></span>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能为空, 使用正则表达式自定义校验规则,1开头,11位全是数字 ‐‐>
                        <td class="left">手机号码:</td>
                        <td class="center">
                            <input id="mobile" name="mobile" type="text" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <!‐‐ 不能为空, 要正确的日期格式 ‐‐>
                        <td class="left">生日:</td>
                        <td class="center">
                            <input id="birth" name="birth" type="text" class="in"/>
                        </td>
                    </tr>
                    <tr>
                        <td class="left">&nbsp;</td>
                        <td class="center">
                            <input name="" type="image" src="img/register.jpg" />
                        </td>
                    </tr>
                </table></td>
        </tr>
    </table>
</form>
</body>
</html>

JavaScript正则表达式实现注册信息校验功能

到此这篇关于JavaScript正则表达式实现注册信息校验的文章就介绍到这了!


Tags in this post...

Java/Android 相关文章推荐
SpringBoot项目中控制台日志的保存配置操作
Jun 18 Java/Android
SpringAop日志找不到方法的处理
Jun 21 Java/Android
深入理解以DEBUG方式线程的底层运行原理
Jun 21 Java/Android
Feign调用传输文件异常的解决
Jun 24 Java/Android
Java使用jmeter进行压力测试
Jul 09 Java/Android
Log4j.properties配置及其使用
Aug 02 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
Mybatis是这样防止sql注入的
Dec 06 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
Java十分钟精通进阶适配器模式
Apr 06 Java/Android
MyBatis配置文件解析与MyBatis实例演示
Apr 07 Java/Android
Java中的继承、多态以及封装
Apr 11 Java/Android
Java时间工具类Date的常用处理方法
May 25 #Java/Android
Java实现扫雷游戏详细代码讲解
多线程Spring通过@Scheduled实现定时任务
May 25 #Java/Android
SpringBoot全局异常处理方案分享
May 25 #Java/Android
Java数据结构之堆(优先队列)
May 20 #Java/Android
Java中Dijkstra(迪杰斯特拉)算法
Android Studio实现带三角函数对数运算功能的高级计算器
May 20 #Java/Android
You might like
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
python实现淘宝购物系统
2019/10/25 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
教师求职信范文分享
2013/12/27 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
微信小程序实现聊天室功能
2021/06/14 Javascript
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
nginx设置资源请求目录的方式详解
2022/05/30 Servers