• b站pink老师JavaScript的ES6面向对象课程中:正则表达式案例代码——表单验证


    目录

    目标效果:

    代码部分: 

    1.reg.js部分(全是重点)

    2.register.html部分(辅助作用,用于查看结构)

    3.register.css部分(辅助作用)

    4.base.css部分(辅助作用)


    目标效果:

    1.当输入的手机号,QQ号,昵称,短信验证码,登录密码,确认密码:如果符合标准,就提示正确的文字;如不符合标准,则提示不正确。

    2.判断确认密码是否与登录密码相等,来看确认密码是否正确。

    3.手机号正则表达式:/^1[3|4|5|7|8][0-9]{9}$/(11位

    QQ号正则表达式:[1-9][0-9]{4,} (腾讯QQ号从10000开始)

    昵称正则表达式:/^[\u4e00-\u9fa5]{2,8}$/2-8位的汉字

    短信验证码正则表达式:/^\d{6}$/6位的数字

    登录密码正则表达式:/^[a-zA-Z0-9_-]{6,16}$/(6-16位的数字,大小写字母,下划线和短横线)

    e.g.1初始状态

    e.g.2输入的手机号不符合标准

     e.g.3输入的手机号符合标准

     e.g.4所有内容符合标准

    代码部分: 

    1.reg.js部分(全是重点)

    1. window.onload = function () {
    2. var regtel = /^1[3|4|5|7|8]\d{9}$/;//手机号的正则表达式 11
    3. var regqq = /^[1-9]\d{4,}$/;//qq号的正则表达式 从10000开始
    4. var regnc = /^[\u4e00-\u9fa5]{2,8}$/;//昵称的正则表达式 2-8位的汉字
    5. var regmsg = /^\d{6}$/;//验证码的正则表达式 6位的数字
    6. var regpwd = /^[a-zA-Z0-9_-]{6,16}$/;//密码的正则表达式 6-16位的数字,大小写字母,下划线和短横线
    7. var tel = document.querySelector('#tel');
    8. var qq = document.querySelector('#qq');
    9. var nc = document.querySelector('#nc');
    10. var msg = document.querySelector('#msg');
    11. var pwd = document.querySelector('#pwd');
    12. var surepwd = document.querySelector('#surepwd');
    13. regexp(tel, regtel);//传递 手机号参数 和 手机号的正则表达式,调用函数regexp
    14. regexp(qq, regqq);//传递 qq号参数 和 qq号的正则表达式,调用函数regexp
    15. regexp(nc, regnc);//传递 昵称参数 和 昵称的正则表达式,调用函数regexp
    16. regexp(msg, regmsg);//传递 验证码参数 和 验证码的正则表达式,调用函数regexp
    17. regexp(pwd, regpwd);//传递 密码参数 和 密码的正则表达式,调用函数regexp
    18. function regexp(ele, reg) {//封装一个表单验证函数regexp,如果符合标准,就提示正确的文字;如不符合标准,则提示不正确
    19. //ele是传递过来的参数,reg是该参数对应的正则表达式
    20. ele.onblur = function () {
    21. if (reg.test(this.value)) {
    22. // console.log('正确的');
    23. this.nextElementSibling.className = 'success';
    24. this.nextElementSibling.innerHTML = ' 恭喜您输入正确';
    25. } else {
    26. // console.log('不正确');
    27. this.nextElementSibling.className = 'error';
    28. this.nextElementSibling.innerHTML = ' 格式不正确,请重新输入';
    29. }
    30. }
    31. }
    32. surepwd.onblur = function () {
    33. if (this.value == pwd.value) {
    34. this.nextElementSibling.className = 'success';
    35. this.nextElementSibling.innerHTML = ' 恭喜您输入正确';
    36. } else {
    37. this.nextElementSibling.className = 'error';
    38. this.nextElementSibling.innerHTML = ' 两次密码输入不一致';
    39. }
    40. }
    41. }

    2.register.html部分(辅助作用,用于查看结构)

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>注册页面</title>
    6. <!-- 初始化css -->
    7. <link rel="stylesheet" href="css/base.css">
    8. <!-- register css文件 -->
    9. <link rel="stylesheet" href="css/register.css">
    10. <script src="js/reg.js"></script>
    11. </head>
    12. <body>
    13. <div class="w">
    14. <!-- header -->
    15. <div class="header">
    16. <div class="logo">
    17. <a href="index.html">
    18. <img src="img/logo.png" alt="">
    19. </a>
    20. </div>
    21. </div>
    22. <!-- registerarea -->
    23. <div class="registerarea">
    24. <h3>
    25. 注册新用户
    26. <em>
    27. 我有账号,去<a href="login.html">登陆</a>
    28. </em>
    29. </h3>
    30. <div class="reg_form">
    31. <form action="demo.php">
    32. <ul>
    33. <li>
    34. <label for="tel">手机号:</label>
    35. <input type="text" class="inp" id="tel">
    36. <span></span>
    37. </li>
    38. <li>
    39. <label for="">QQ:</label>
    40. <input type="text" class="inp" id="qq">
    41. <span></span>
    42. </li>
    43. <li>
    44. <label for="">昵称:</label>
    45. <input type="text" class="inp" id="nc">
    46. <span></span>
    47. </li>
    48. <li>
    49. <label for="">短信验证码:</label>
    50. <input type="text" class="inp" id="msg">
    51. <span></span>
    52. </li>
    53. <li>
    54. <label for="">登陆密码:</label>
    55. <input type="text" class="inp" id="pwd">
    56. <span></span>
    57. </li>
    58. <li class="safe">
    59. 安全程度
    60. <em class="ruo"></em>
    61. <em class="zhong"></em>
    62. <em class="qiang"></em>
    63. </li>
    64. <li>
    65. <label for="">确认密码:</label>
    66. <input type="text" class="inp" id="surepwd">
    67. <span></span>
    68. </li>
    69. <li class="agree">
    70. <input type="checkbox">同意协议并注册
    71. <a href="#">《知果果用户协议》</a>
    72. </li>
    73. <li>
    74. <input type="submit" value="完成注册" class="over">
    75. </li>
    76. </ul>
    77. </form>
    78. </div>
    79. </div>
    80. <div class="footer">
    81. <p class="links">
    82. 关于我们 | 联系我们 | 联系客服 | 商家入驻 | 营销中心 | 手机品优购 | 友情链接 | 销售联盟 | 品优购社区 | 品优购公益 | English Site | Contact U
    83. </p>
    84. <p class="copyright">
    85. 地址:北京市昌平区建材城西路金燕龙办公楼一层 邮编:100096 电话:400-618-4000 传真:010-82935100 邮箱: zhanghj+itcast.cn <br>
    86. 京ICP备08001421号京公网安备110108007702
    87. </p>
    88. </div>
    89. </div>
    90. </body>
    91. </html>

    3.register.css部分(辅助作用)

    1. .w {
    2. width: 1200px;
    3. margin: auto;
    4. }
    5. .header {
    6. height: 82px;
    7. border-bottom: 2px solid #b1191a;
    8. }
    9. .logo {
    10. padding-top: 15px;
    11. }
    12. .registerarea {
    13. height: 580px;
    14. border: 1px solid #ccc;
    15. margin-top: 20px;
    16. }
    17. .registerarea h3 {
    18. height: 40px;
    19. border-bottom: 1px solid #ccc;
    20. background-color: #ececec;
    21. padding: 0 10px;
    22. font-weight: 400;
    23. line-height: 40px;
    24. font-size: 18px;
    25. }
    26. .registerarea h3 em {
    27. float: right;
    28. font-size: 14px;
    29. }
    30. .registerarea a {
    31. color: #c81623;
    32. }
    33. .reg_form {
    34. width: 600px;
    35. height: 400px;
    36. margin: 40px auto 0;
    37. }
    38. .reg_form li {
    39. margin-bottom: 15px;
    40. }
    41. .reg_form label {
    42. display: inline-block;
    43. width: 100px;
    44. height: 36px;
    45. line-height: 36px;
    46. text-align: right;
    47. }
    48. .inp {
    49. width: 238px;
    50. height: 34px;
    51. border: 1px solid #ccc;
    52. margin-left: 10px;
    53. }
    54. .error {
    55. color: #df3033;
    56. margin-left: 10px;
    57. }
    58. .error_icon,
    59. .success_icon {
    60. display: inline-block;
    61. width: 20px;
    62. height: 20px;
    63. background: url(../img/error.png) no-repeat;
    64. vertical-align: middle;
    65. margin-top: -2px;
    66. }
    67. .success {
    68. color: #40b83f;
    69. margin-left: 10px;
    70. }
    71. .success_icon {
    72. background-image: url(../img/success.png);
    73. }
    74. .safe {
    75. padding-left: 187px;
    76. color: #b2b2b2;
    77. }
    78. .safe em {
    79. padding: 0 12px;
    80. color: #fff;
    81. }
    82. .ruo {
    83. background-color: #de1111;
    84. }
    85. .zhong {
    86. background-color: #40b83f;
    87. }
    88. .qiang {
    89. background-color: #f79100;
    90. }
    91. .agree {
    92. padding-top: 20px;
    93. padding-left: 100px;
    94. }
    95. .agree input {
    96. vertical-align: middle;
    97. margin-right: 5px;
    98. }
    99. .agree a {
    100. color: #1ba1e6;
    101. }
    102. .over {
    103. width: 200px;
    104. height: 34px;
    105. background-color: #c81623;
    106. margin: 30px 0 0 130px;
    107. border: none;
    108. color: #fff;
    109. font-size: 14px;
    110. }
    111. .footer {
    112. height: 120px;
    113. text-align: center;
    114. }
    115. .links {
    116. margin-top: 20px;
    117. height: 30px;
    118. }
    119. .copyright {
    120. line-height: 20px;
    121. }

    4.base.css部分(辅助作用)

    1. /*清除元素默认的内外边距 */
    2. * {
    3. margin: 0;
    4. padding: 0
    5. }
    6. /*让所有斜体 不倾斜*/
    7. em,
    8. i {
    9. font-style: normal;
    10. }
    11. /*去掉列表前面的小点*/
    12. li {
    13. list-style: none;
    14. }
    15. /*图片没有边框 去掉图片底侧的空白缝隙*/
    16. img {
    17. border: 0; /*ie6*/
    18. vertical-align: middle;
    19. }
    20. /*让button 按钮 变成小手*/
    21. button {
    22. cursor: pointer;
    23. }
    24. /*取消链接的下划线*/
    25. a {
    26. color: #666;
    27. text-decoration: none;
    28. }
    29. a:hover {
    30. color: #e33333;
    31. }
    32. button,
    33. input {
    34. font-family: 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', \\5B8B\4F53, sans-serif;
    35. /*取消轮廓线 蓝色的*/
    36. outline: none;
    37. }
    38. body {
    39. background-color: #fff;
    40. font: 12px/1.5 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', \\5B8B\4F53, sans-serif;
    41. color: #666
    42. }
    43. .hide,
    44. .none {
    45. display: none;
    46. }
    47. /*清除浮动*/
    48. .clearfix:after {
    49. visibility: hidden;
    50. clear: both;
    51. display: block;
    52. content: ".";
    53. height: 0
    54. }
    55. .clearfix {
    56. *zoom: 1
    57. }

  • 相关阅读:
    HDFS基础入门
    2023年“羊城杯”网络安全大赛 决赛 AWDP [Break+Fix] Web方向题解wp 全
    【uniapp+云函数调用】人脸识别,实人认证,适用于app,具体思路解析,已实现
    高校学生档案管理系统(Angularjs+HTML+CSS+bootstrap)
    磁场设备—亥姆霍兹线圈
    操作系统实验三虚拟存储器管理之模拟页面置换算法(FIFO&LRU)
    java 注解编程
    STM32 - 笔记4
    【二叉树进阶】红黑树(Red Black Tree) - 平衡二叉搜索树
    【java期末复习题】第10章 Java输入与输出
  • 原文地址:https://blog.csdn.net/weixin_72322475/article/details/127984948