任务1:身份证号码验证
任务要求:
本案例将实现验证用户输入的身份证号码是否合法,由于真实的身份证号规则比较复杂,这里我们采用一种简单的验证规则,要求合法的身份证号码为18位,前6位表示地区码,以非0数字开头;后面8位表示出生日期(年、月、日),要求年份在1800—3999年;最后4位由3位顺序码和1位校验码组成,1位校验码可以是0~9之间的任意一个数字或者是X,为了输入方便,允许将X输入成x。
案例初始页面效果如下:
身份证号码各部分验证规则:
任务分析:
声明变量,接收用户输入的身份证号码。
根据各部分规则,创建正则表达式。
根据正则表达式判断用户输入的身份证号码是否合法。
任务实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
var str = prompt('请输入要验证的身份证号:')
var reg = /^[1-9]\d{5}(18|19|[23]\d)\d{2}(0[1-9]|1[0-2])([0-2][1-9]|10|20|30|31)\d{3}[0-9Xx]$/;
if (reg.test(str)) {
console.log('您输入的身份证号码合法');
} else {
console.log('您输入的身份证号码不合法');
}
</script>
</body>
</html>
练一练
根据所给素材制作注册页面,使用正则表达式验证页面数据的有效性,要求如下:
使用表单form的onsubmit事件,根据验证函数的返回值是tru或false来决定是否提示表单。
用户名不能为空,长度为4-12个字符,并且用户名只能由字母、数字和下划线组成。
密码长度为6-12个字符,两次输入的密码必须一致。
必须选择性别。
电子邮箱地址不能为空,并且必须包含字符“@”和“.”。
出生日期用代码生成,年份范围为1900-当前年份,月份范围为1-12,日范围为1-31。
错误提示信息显示在对应表单元素的后面,例如,若用户名不正确时,在文本框后进行提示

参考答案: