简单验证
使用String类型来对数据格式进行判断
先验证用户名与密码,给未填写提示
设置约束给判断提示
这是登录的界面
<form action="" id="myForm">
<p>名字: <input type="text" id="userName" onkeyup="checkLabel(this)"><span><i class="error"></i></span></p>
<p>密码: <input type="text" id="userPwd" onkeyup="checkLabel(this)"><span><i class="error"></i></span></p>
<p>邮箱: <input type="text" id="userEmail" onkeyup="checkLabel(this)"><span><i class="error"></i></span></p>
<p>
<button>登录</button>
</p>
</form>
检查名字
1
//用来检查名字是否合规
function checkLabel(obj) {
var length = obj.value.length
// var label=obj.nextElementSibling
var label = obj.parentElement.getElementsByClassName(“error”)[0]
if (length > 0) {//里面有内容
//名字的大小应该在 3-6 之间
if (length >= 3 && length <= 6) {
label.textContent = “😊”
return true
}
//不在区间之内
label.textContent = “长度必须在3-6之间”
return false
}
//里面没有内容
label.textContent = “长度必须大于0”
return false
}
2
//用来检查名字是否合规
function checkName() {
var length = userName.value.length
if (length > 0) {//里面有内容
//名字的大小应该在 3-6 之间
if (length >= 3 && length <= 6) {
l1.textContent = “😊”
return true
}
//不在区间之内,因为一般输入框后都有提示
l1.textContent = “长度必须在3-6之间”
return false
}
//里面没有内容
l1.textContent = “长度必须大于0”
return false
}
检查密码
//用来检查密码是否合规
function checkPwd() {
var length = userPwd.value.length
if (length > 0) {//里面有内容
//名字的大小应该在 3-6 之间
if (length >= 3 && length <= 6) {
l2.textContent = "😊"
return true
}
//不在区间之内
l2.textContent = "长度必须在3-6之间"
return false
}
//里面没有内容
l2.textContent = "长度必须大于0"
return false
}
检查邮箱
//用来检查邮箱是否合规
function checkEmail() {
var length = userEmail.value.length
if (length > 0) {//里面有内容
//名字的大小应该在 3-6 之间
if (length >= 3 && length <= 6) {
l3.textContent = “😊”
return true
}
//不在区间之内
l3.textContent = “长度必须在3-6之间”
return false
}
//里面没有内容
l3.textContent = “长度必须大于0”
return false
}
当数据都输入合规时需要写提交事件
//添加提交事件(会具备返回值)
myForm.onsubmit = () => {
//阻止表单的提交 需要返回 false
// return checkName()&&checkPwd()&&checkEmail()
var f1 = checkLabel(userName)
var f2 = checkLabel(userEmail)
var f3 = checkLabel(userPwd)
return f1 && f2 && f3
}
正则验证
正则的规则
\d数字[0~9]
\D非数字^ [0~9](^与[]之间没有空格)
\w数字+英文+下划线[0~9a-zA-Z_]
\W非数字+英文+下划线^ [0~9a-zA-Z_](^与[]之间没有空格)
.任意数字
? 0~1次
+至少一次
*0~任意次
\d{n}n个数字
\d{n~m}至少n次,最多m次
注意事项
规则必须以/^开头
规则必须以&/结尾
规则只需要\d,而不是\d
定义正则对象:var rex=/^\d{4}$/
使用正则对象:rex.test(‘123’)
正则验证
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" id="m1">
<span id="l1"></span>
<p>
密码等级<span id="l2"></span>
</p>
<script>
m1.onkeyup=function (){
//长度必须在6-10之间
var str=m1.value
if(str!=""){
//定义正则
var r1=/^\w{6,10}$/
// 数字 英文(小写 大写) .
var r2=/^.*[a-z].*$/
var r3=/^.*[A-Z].*$/
var r4=/^.*\d.*$/
//密码等级
var dj=""
//开始正则验证
if(r1.test(str)){
l1.textContent="O(∩_∩)O😄"
if(r2.test(str))dj+="☆"
if(r3.test(str))dj+="☆"
if(r4.test(str))dj+="☆"
l2.textContent=dj
return
}
//不满足
l1.textContent="不符合格式"
return
}
l1.textContent="不能为空"
}
</script>
</body>
</html>
二级联动
需要数组来写
//类型不限制
//长度不限制
//数组可以是字符串
var provinces=[]
//城市
provinces["日本省"]=["北海道","桥豆麻袋","摩西摩西"]
provinces["湖南省"]=["长沙","北京","西八"]
provinces["广西省"]=["表妹","螺蛳粉","表郭"]
二级联动代码总览
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<select id="province" onchange="myChange()"></select>
<select id="cities"></select>
<script>
//数组怎么写?
//类型不限制
//长度不限制
//数组可以是字符串
var provinces=[]
//城市
provinces["日本省"]=["北海道","桥豆麻袋","摩西摩西"]
provinces["湖南省"]=["长沙","北京","西八"]
provinces["广西省"]=["表妹","螺蛳粉","表郭"]
//省份怎么来
// for of 相当于foreach 遍历元素
// for in 遍历下标
for(let i in provinces){
//往省份的下拉框中添加选项
//<option value="i">i</option>
province.appendChild(new Option(i,i))
}
//城市里面放谁?
function setCity(name) {
for(let i of provinces[name]){
cities.appendChild(new Option(i,i))
}
}
setCity(province.value)
function myChange() {
//清空原来的选项
cities.innerHTML=""
//输入框 和 下拉框
setCity(province.value)
}
</script>
</body>
</html>
今天就到这了,明天见