JavaScript的应用举例

制作一个用户注册页面practice1_3.html,具体要求如下:(1)有常用的登录账号、密码、确认密码、姓名、身份证号码(只考虑18位的身份证)、出生年月日、住址、邮编、E-mail等输入区域(自己设定)。(2)自己设定验证规则,在提交时检验是否符合要求,用alert提醒出非法的输入,并将焦点返回要输入的控件对象。(3)根据出生年月日判断身份证号码是否合法(只考虑18位身份证)。(4)其他验证:登录账号只能是字母或数字且以字母开头;密码要在8位以上且需要有字母和数字之外的字符;出生年月日的格式为yyyy-mm-dd;邮编为6位数字;E-mail的基本格式验证。


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>注册</title>
    <link rel="stylesheet" href="register.css" />
  </head>

  <body>
    <div class="box">
      登录账号<input type="text" name="" class="fore account" /><br />
      密码<input type="password" name="" class="two psw" /><br />
      确认密码<input type="password" name="" class="fore psw2" /><br />
      姓名<input type="text" name="" class="two" /><br />
      身份证号<input type="text" class="fore sfz" /><br />
      出生日期<input type="date" class="fore dateOfBirth" /><br />
      邮编<input type="text" class="two postcode" /><br />
      E-mail<input type="email" class="two1" /><br />
      <input type="button" value="提交" class="btn" />
    </div>
  </body>
  <script>
    var btn = document.querySelector('.btn')
    var account = document.getElementsByClassName('account')[0]
    let first_username = account.value[0]
    let dateOfBirth = document.getElementsByClassName('dateOfBirth')[0]
    var reg = /^[0-9a-zA-Z]$/
    var regPSW = /^[a-zA-Z0-9]+$/
    var regID = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    var regEmal = /^[1-9][0-9]{4,10}@qq.com$/
    btn.addEventListener('click', function () {
      var psw = document.getElementsByClassName('psw')[0]
      var psw2 = document.getElementsByClassName('psw2')[0]
      if (psw.value != '') {
        if (psw.value.length < 8) {
          alert('请输入8位以上的密码')
          psw.focus()
        } else if (!regPSW.test(psw.value)) {
          console.log(psw.value)
          alert('密码需要有字符,字母,数字')
          psw.focus()
        }
      }
      if (psw2.value != psw.value) {
        alert('密码不一致')
        psw2.focus()
      }
      var sfz = document.getElementsByClassName('sfz')[0]
      if (sfz.value != '') {
        var time = dateOfBirth.value.substring(2, dateOfBirth.value.length).replace('-', '').replace('-', '')
        let result = sfz.value.substring(8, 14)
        if (!regID.test(sfz.value)) {
          alert('输入身份证有误')
          sfz.focus()
        } else if (time !== result) {
          alert('出生日期与身份证输入不符')
        }
      }
      var postcode = document.getElementsByClassName('postcode')[0]
      if (postcode.value != '') {
        if (postcode.value.length == 5) {
          alert('邮编要输入6位数')
          postcode.focus()
        }
      }
      var Emal = document.getElementsByClassName('two1')[0]
      if (Emal.value != '') {
        if (!regEmal.test(Emal.value)) {
          alert('请输入正确的邮箱号')
          Emal.focus()
        }
      }
    })
    account.oninput = ({ target }) => {
      first_username = target.value[0]
      if (!reg.test(first_username)) {
        alert('用户名首个字符必须为字母')
      }
    }
  </script>
</html>

运行结果

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值