js--用blur事件做表单验证,常用字符串、数组api小结
发布于:2022-01-26 17:55:57
次阅读
1. 用blur事件做表单验证
<!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> </head> <body> <style> html { font-size: 100px; } * { padding: 0; margin: 0; border: none; box-sizing: border-box; } body { font-size: 16px; background-color: rgb(51, 169, 204); } #login { width: 3.5rem; margin: 2rem auto; padding: 0.15rem 0.25rem; background-color: rgb(128, 206, 227); display: grid; grid-template-columns: 0.6rem 1fr; gap: 0.15rem 0; } h3 { margin-bottom: 0.2rem; text-align: center; grid-area: auto / span 2; } button { padding: 0.05rem; color: white; background-color: rgb(62, 141, 186); margin-bottom: 0.2rem; grid-area: auto / 2 / auto; } button:hover { cursor: pointer; background-color: rgb(38, 105, 138); } </style> <form id="login"> <h3>用户登录</h3> <label for="email">邮箱:</label> <input type="email" name="email" id="email" onblur="checkEmail(this)" /> <label for="pass">密码:</label> <input type="password" name="pass" id="pass" onblur="checkPass()" /> <button onclick="login()">登录</button> </form> <script> let checkEmailState = false; let checkPassState = false; // 邮箱输入框失去焦点时检查输入 function checkEmail(ev) { // 阻止冒泡 event.stopPropagation(); let email = ev.form.email.value; if (email.length === 0) { alert("邮箱名不能为空!"); checkEmailState = false; } else { checkEmailState = true; } } // 密码失去焦点时检查输入 function checkPass() { event.stopPropagation(); let pass = event.target; if (pass.value.length === 0) { alert("密码不能为空!"); checkPassState = false; } else { checkPassState = true; } } function login() { if (checkEmailState && checkPassState) { alert("验证通过!"); } else { alert("验证错误,请重新输入!"); } } </script> </body></html>

2.常用字符串api
<!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>字符常用api</title> </head> <body> <script> let msg = "php中文网:公益在线php培训,帮助PHP学习者快速成长!"; // 1. length:字符串长度 console.log(msg.length); // 2. charAt:索引,第几个字符 console.log(msg.charAt(8)); // 字符串可当作数组 console.log(msg[8]); // 3. indexOf:字符索引,返回是第几个字符 console.log(msg.indexOf("学")); // 4. search:同上,支持正则表达 console.log(msg.search("学")); // 5. replace:替换 console.log(msg.replace("中文网", ".cn中文网")); // 6. slice:取子串,开始,结束 console.log(msg.slice(3, 6)); // 7. substr:取子串,开始,长度 console.log(msg.substr(3, 6)); // 负数为从倒数第几个开始 console.log(msg.substr(-6, 3)); // 8. split:转为数组,每个字符为一个值 let msgArr = msg.split(""); console.log(msgArr); console.log(msgArr[3]); // 指定转换数量,例:把6个字符转为数组 console.log(msg.split("", 6)); // 9. toLowerCase,toUpperCase:大小写转换 console.log(msg.toLowerCase()); console.log(msg.toUpperCase()); // 10. 与html相关 console.log(`<a href="https://php.cn">${msg}</a>`); // link实现上面连接 console.log(msg.link("https://php.cn")); // 添加加粗元素 console.log(msg.bold()); // 创建锚点 console.log(msg.anchor("url")); </script> </body></html>
3. 数组常用api
<!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>数组常用api</title> </head> <body> <script> // 一、创建数组的方式 // 1. 用字面量,数组里支持任何类型数据 let arr = [ 1, 3, 6, "中文网", true, { i: 55, j: 88, aa() {} }, () => "这是函数。", ]; console.log(arr); // 2. 用...rest创建 let arrOne = [...arr]; console.log(arrOne); // 扩展数组 let arrTwo = [56, 78, "ok", ...arrOne]; console.log(arrTwo); // 3. Array.of创建 let arrThree = Array.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); console.log(arrThree); arrThree = [1, 3, 5, 7, 9]; let arrFour = Array.of(...arrThree); console.log(arrFour); // 4. Array.from 创建类数组 // 定义类 const weather = { 0: "暴风雨", 1: "晴", 2: "小雨", length: 3, }; // weather为类 console.log(weather); // 转为数组 console.log(Array.from(weather)); // 二、数组增删 let arrEr = [5, 8, 10]; // 从尾部增加 arrEr.push(15); arrEr.push(25, 28); console.log(arrEr); // 从尾部删除 arrEr.pop(); arrEr.pop(); arrEr.pop(); console.log(arrEr); // 从头部增加 arrEr.unshift(4); arrEr.unshift(1, 2); console.log(arrEr); // 从头删除 arrEr.shift(); arrEr.shift(); arrEr.shift(); console.log(arrEr); // 按索引删除,只能删除值,长度不变 delete arrEr[1]; console.log(arrEr); console.log(arrEr.length); // 通过修改数组长度,增加空值 arrEr.length = 5; console.log(arrEr); // 三、迭代方法和遍历元素 // 1.forEach let arrFor = [10, 20, 30, 40, 50, 60, 70, 80, 90]; // forEach的参数是回调函数 // 回调函数的参数: // 第一个:从数组中取的值 // 第二个:数组的索引 // 第三个:要遍历的数组 // 没有返回值,不能赋值给变量 arrFor.forEach(function (value, index, arrFor) { console.log(value, index); document.body.append(`数组值${value}--`); }); // 2. map:参数功能与forEach一样,有返回值 let value = arrFor.map((value) => value); console.log(value); // 3. every,some:断言函数,返回true,false // every:判断数组成员是否全部满足条件 console.log(value.every((i) => i > 55)); console.log(value.every((i) => i < 500)); // some:数组成员中只要有1个满足条件就为true console.log(value.some((i) => i > 55)); console.log(value.some((i) => i < 80)); // 4. filter:返回数组中满足条件的值,组成新数组 let min = value.filter((i) => i < 80); console.log(min); // 5. reduce:归并,参数a为累加器,结果放到a,a可设初始值 value = arrFor.reduce(function (a, b, c, d) { console.log(`${a}--${b}--${c}--${d}`); return a + b; }, 100); // 四、 // 1. sort:排序, arr = [5, 15, 35, 85]; // 默认按字母表顺序 console.log(arr.sort()); // 按大到小排,要用参数 console.log(arr.sort((a, b) => a - b)); // 从小到大排; console.log(arr.sort((a, b) => b - a)); // 2. join:连接数组 arr = ["大号", "中号", "小号"]; console.log(arr.join()); console.log(arr.join("--")); // 3. slice:取子元素 arr = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]; // 第2个到第5个 console.log(arr.slice(2, 5)); // 第2个开始到最后 console.log(arr.slice(2)); // 倒数第6个到倒数第2个 console.log(arr.slice(-6, -2)); // 4. splice:删除、新增、替换 // 从索引1开始删除3个元素 console.log(arr.splice(1, 3)); console.log(arr); // 替换:从索引1开始替换3个元素 console.log(arr.splice(1, 3, "a", "b", "c")); console.log(arr); // 插入:从索引1开始插入3个元素 console.log(arr.splice(1, 0, "红", "黄", "蓝")); console.log(arr); let data = ["太阳", "月亮"]; console.log(arr.splice(5, 0, ...data)); console.log(arr); </script> </body></html>