JavaWeb基础教程-----(6)JavaScript

1 JavaScript简介

  • JavaScript 是一门跨平台、面向对象的脚本语言,用来控制网页行为的,它能使网页可交互
  • JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似
  • JavaScript (简称JS) 在1995年由Brendan Eich发明,并于1997年成为一部ECMA标准
  • ECMAScript 6 (ES6)是最新的JavaScript版本(发布于2015年)

2 JavaScript引入方式

JavaScript 引入方式就是 HTML 和 JavaScript 的结合方式。

JavaScript引入方式有两种:

  • 内部脚本:将 JS代码定义在HTML页面中
    在 HTML 中,JavaScript 代码必须位于<script> 与 </script> 标签之间
<script>
    alert("hello js");
</script>
  • 在 HTML 文档中可以在任意地方,放置任意数量的<script>标签
  • 一般把脚本置于 <body>元素的底部,可改善显示速度,因为脚本执行会拖慢执行
  • 外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中
    外部文件:demo.js    alert(“hello js”);
    引入外部js文件: <script src=“…/js/demo.js”></script>

注意:外部脚本不能包含script标签
script标签不能自闭合

3 JavaScript基础语法

3.1 书写语法

  • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
  • 每行结尾的分号可有可无,建议写上
  • 注释
    单行注释:// 注释内容
    多行注释:/* 注释内容 */
  • 大括号表示代码块

3.2 输出语句

  • 使用 window.alert() 写入警告框,可省略成alert();
  • 使用 document.write() 写入 HTML 输出
  • 使用 console.log() 写入浏览器控制台

【示例】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    
<script>
    window.alert("hello js 1");//写入警告框
    document.write("hello js 2");//写入html页面
    console.log("hello js 3");//写入浏览器的控制台
</script>
</body>
</html>

效果:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.3 变量

  • JavaScript 中用 var 关键字(variable 的缩写)来声明变量

  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值

  • 变量名需要遵循:

    • 组成字符可以是任何字母、数字、下划线(_)或者美颜元服装
    • 不能数字开头
    • 建议使用驼峰命名
  • ECMAScript 6 新增了 let关键字来定义变量。它的用法类似于 var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明

  • ECMAScript 6 新增了 const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变

  1. var是弱类型、全局变量,且可重复定义
    作用域:全局变量
{
    var age = 20;
}
alert(age); 

变量可以重复定义

{
    var age = 20;
    var age = 30;//JavaScript 会用 30 将之前 age 变量的 20 替换掉
}
    alert(age); 
  1. let关键字
    它的用法类似于 var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明。
{
    let age = 20;
}
alert(age); 

运行上面代码,浏览器并没有弹框输出结果,说明这段代码有问题。
在这里插入图片描述

如果在代码块中定义两个同名的变量,IDEA 开发工具就直接报错了
在这里插入图片描述

  1. const关键字
    在这里插入图片描述给 PI 这个常量重新赋值时报错了

3.4 数据类型

  • JavaScript 中分为:原始类型 和 引用类型
    5种原始类型:
    在这里插入图片描述
  • 使用 typeof 运算符可以获取数据类型
    alert(typeof age);

【示例】:

number:

    var age = 20;
    var price = 99.8;
     
    alert(typeof age); // 结果是 : number
    alert(typeof price);// 结果是 : number

sting:单双引皆可

var ch = 'a';
var name = '张三'; 
var addr = "北京";
 
alert(typeof ch); //结果是  string
alert(typeof name); //结果是  string
alert(typeof addr); //结果是  string

boolean:

var flag = true;
var flag2 = false;
 
alert(typeof flag); //结果是 boolean
alert(typeof flag2); //结果是 boolean

null:

var obj = null;
 
alert(typeof obj);//结果是 object

在这里插入图片描述undefined:

var a ;
alert(typeof a); //结果是 undefined

3.5 运算符

在这里插入图片描述
== 和 ===区别
==:值等于,只比较值,判断类型是否一样,如果不一样,则进行类型转换,再去比较其值

===:全等于,比较类型和值,判断类型是否一样,如果不一样,直接返回false,类型一样再去比较其值

【示例】

<script>
  var age1 = 20;
  var age2 = "20";

  alert(age1 == age2);  //true
  alert(age1 === age2); //false
</script>

3.6 类型转换

3.6.1 其他类型转为number

  • string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN

有两种方式:

  1. 方式一:+ 正号运算符
var str = +"20";
alert(str+1);	//21
  1. 方式二:parseInt()
var str = "20";
alert(parseInt(str)+1);	//21
  • boolean 转换为 number 类型:true 转为1,false转为0
var flag = +false;
alert(flag); // 0

3.6.2 其他类型转为boolean

  1. number 类型转换为 boolean 类型:0和NaN转为false,其他的数字转为true
var flag = 3;
if(flag){
    alert("转为true");
}else {
    alert("转为false");
}
//3 ---> 转为true
//0 ---> 转为false
  1. string 类型转换为 boolean 类型:空字符串转为false,其他的字符串转为true,示例:"null"是true,"0"是true
var flag = "";
if(flag){
    alert("转为true");
}else {
    alert("转为false");
}
//"" ---> 转为false
//"null" --->转为true
//"0" --->转为true
  1. null类型转换为 boolean 类型是 false
  2. undefined 转换为 boolean 类型是 false

使用:
在 Java 中使用字符串前,一般都会先判断字符串不是null,并且不是空字符才会做其他的一些操作,JavaScript也有类型的操作,可以简化条件判断

var str = "abc";
 
//健壮性判断
//if(str != null && str.length > 0){
if(str){
    alert("转为true");
}else {
    alert("转为false");
}

3.7 流程控制语句

JavaScript的流程控制语句与java一样.,if、switch、for、while、do…while
【示例】

<script>

/*  //1. if
  var count = 3;
  if (count == 3){
    alert(count);
  }*/

/*
  //2. switch
  var num = 3;
  switch (num) {
    case 1:{
      alert("星期一");
      break;
    }
    case 2:{
      alert("星期二");
      break;
    }
    case 3:{
      alert("星期三");
      break;
    }
    case 4:{
      alert("星期四");
      break;
    }
    case 5:{
      alert("星期五");
      break;
    }
    default:{
      alert("输入有误");
      break;
    }
  }
*/

/*  //3. for
  var sum = 0;
  for (let i = 1; i <= 100; i++) {
    sum += i;
  }
  alert(sum);*/

/*  //4. while
  var sum = 0;
  var i = 1;
  while (i <= 100){
    sum += i;
    i++;
  }
  alert(sum);*/

  //5. do...while
  var sum = 0;
  var i = 1;
  do{
    sum += i;
    i++;
  }while (i <= 100);
  alert(sum);

</script>

3.8 函数

  • 函数(方法)是被设计为执行特定任务的代码块
  • JavaScript 函数通过 function 关键词进行定义:

定义方式一:

function functionName(参数1,参数2..){
        要执行的代码
}

形式参数不需要类型,因为JavaScript是弱类型语言
返回值也不需要定义类型,可以在函数内部直接使用return返回即可

例如:

function add(a,b){
	return a+b;
}

定义方式二:

var functionName = function(参数列表){
	要执行的代码
}
var add = function(a,b){
	return a + b;
}
  • 调用:函数名(实参列表);let result = add(1,2);
  • 在JS中,函数调用可以传递任意个数参数

4 JavaScript对象

JavaScript 和 HTML DOM 参考手册

4.1 Array

JavaScript Array对象用于定义数组

  • 定义
    在这里插入图片描述
  • 访问
    在这里插入图片描述
  • JS数组类似于Java集合,长度,类型都可变

注意:Java中的数组静态初始化使用的是{}定义,而 JavaScript 中使用的是 [] 定义

数组特点一:变长

  var arr = [1,2,3];
  arr[10]=10;
  alert(arr[10]); //10
  alert(arr[9]);  //undefined

数组特点二:变类型

  arr[5] = "hello";
  alert(arr[5]);  //hello
  alert(arr); //1,2,3,,,hello,,,,,10

属性:length(数组中元素的个数)

  var arr = [1,2,3];
  for (let i = 0; i < arr.length; i++) {
    alert(arr[i]);
  }

方法一:push(添加元素)

var arr = [1,2,3];
arr.push(10);
alert(arr); //1,2,3,10

方法二:splice(删除元素)

var arr = [1,2,3];
arr.splice(0,1);
alert(arr); //2,3

4.2 String

  • 定义
    在这里插入图片描述
  • 属性
    length:字符串的长度
  • 方法
    charAt():返回指定位置的字符
    IndexOf():检索字符串
    trim():去掉字符串两端的空格
  var str4 = '  abc  ';
  alert(1+str4+1);    //1  abc  1
  alert(1+str4.trim()+1);   //1abc1

4.3 自定义对象

在这里插入图片描述

5 BOM

  • Browser Object Model 浏览器对象模型
  • JavaScript 将浏览器的各个组成部分封装为对象
  • 组成:
    在这里插入图片描述

5.1 Window对象

  • Window:浏览器窗口对象
  • 获取:直接使用window,其中window.可以省略:window.alert('abc);
  • 属性:获取其他BOM对象
    history:返回窗口的 History 对象。
    navigator:返回窗口的 Navigator 对象。
    screen:返回窗口的 Screen 对象。
    location:返回窗口的 Location 对象。
  • 方法
    alert():显示带有消息和确定按钮的警报框(对话框)。
    confirm():显示对话框,其中包含消息以及确定和取消按钮。
    setInterval():周期性执行指定的代码。
    setTimeout():在经过指定的时间之后执行代码。

setTimeout(function,毫秒值):一次性定时器,在一定的时间间隔后执行一个function,只执行一次
setInterval(function,毫秒值):循环定时器,在一定的时间间隔后执行一个function,循环执行

【示例】定时切换图片

<body>
<input type="button" onclick="on()" value="开灯">
<img id="myImage" border="0" src="../imgs/off.jpg" style="...">
<input type="button" onclick="off()" value="关灯">

<script>
  function on(){
    document.getElementById('myImage').src='../imgs/on.jpg';
  }
  function off(){
      document.getElementById('myImage').src='../imgs/off.jpg';
  }
  var x = 0;

  //定时器
  setInterval(function (){
      if (x % 2 == 0){
          on();
      }else {
          off();
      }
      x++;
  },1000);

</script>
</body>

5.2 History对象

  • History:历史记录
  • 获取:使用window.history获取,window.可以省略:window.history.方法();
  • 方法
    back():加载历史列表中的上一个 URL(页面)。我们平时在访问其他的一些网站时经常使用对应的效果,当我们点击向左返回的箭头,就跳转到前一个访问的页面,这就是 back() 函数的作用;当我们点击向右前进的箭头,就跳转到下一个访问的页面,这就是== forward() 函数==的作用。

5.3 Location对象

  • Location:地址栏对象
  • 获取:使用window.location获取,window.可以省略:window.location.方法();
  • 属性
    在这里插入图片描述

【示例】

alert("要跳转了");
location.href = "https://www.baidu.com";

6 DOM

  • Document Object Model 文档对象模型

  • 将标记语言的各个组成部分封装为对象
    在这里插入图片描述

  • JavaScript 通过 DOM, 就能够对 HTML进行操作

    • 改变 HTML 元素的内容
    • 改变 HTML 元素的样式(CSS)
    • 对 HTML DOM 事件作出反应
    • 添加和删除 HTML 元素
  • DOM 是 W3C(万维网联盟)的标准

  • 定义了访问 HTML 和 XML 文档的标准

  • W3C DOM标准被分为 3 个不同的部分:

    • 核心DOM:针对任何结构化文档的标准模型
      在这里插入图片描述

    • XML DOM:针对 XML 文档的标准模型

    • HTML DOM:针对 HTML 文档的标准模型
      在这里插入图片描述

6.1 获取Element

  • Element:元素对象
  • 获取:使用Document对象的方法来获取
    • getElementById( ):根据id属性值获取,返回单个Element对象
    • getElementsByTagName( ):根据标签名称获取,返回Element对象数组
    • getElementsByName( ):根据name属性值获取,返回Element对象数组
    • getElementsByClassName( ):根据class属性值获取,返回Element对象数组

【示例】

<body>
<img id="light" src="../imgs/off.jpg"><br>

<div class="cls">传智教育</div><br>
<div class="cls">黑马程序员</div><br>

<input type="checkbox" name="hobby">电影
<input type="checkbox" name="hobby">旅游
<input type="checkbox" name="hobby">游戏<br>

<script>
    var img = document.getElementById("light");
    //alert(img);

    var divs = document.getElementsByTagName("div");
    //alert(divs.length);
    /*for (let i = 0; i < divs.length; i++) {
        alert(divs[i]);
    }*/
    
    var hobbys = document.getElementsByName("hobby");
    /*for (let i = 0; i < hobbys.length; i++) {
        alert(hobbys[i]);
    }*/
    
    var clss = document.getElementsByClassName("cls");
    for (let i = 0; i < clss.length; i++) {
        alert(clss[i]);
    }
    
</script>
</body>

6.2 常见HTML Element对象的使用

HTML 中的 Element 元素对象有很多,不可能全部记住,根据具体的需求查阅文档使用。
1. img(Image对象属性)
Image 对象代表 HTML <img>元素。

在这里插入图片描述

【示例】
在这里插入图片描述

效果:
在这里插入图片描述

2. div
查参考手册查不到div的属性,由于div是继承element元素的,因此使用element的属性也可以
在这里插入图片描述
在这里插入图片描述

【示例】
在这里插入图片描述
效果:
在这里插入图片描述

3. Input Checkbox 对象
Input Checkbox 对象代表已设置 type=“checkbox” 的 HTML <input> 元素。
在这里插入图片描述
【示例】
在这里插入图片描述
效果:
在这里插入图片描述

7 事件监听

  • 事件:HTML 事件是发生在 HTML 元素上的“事情”。比如:按钮被点击,鼠标移动到元素上,按下键盘按键
  • 事件监听:JavaScript可以在事件被侦测到时执行代码

7.1 事件绑定

  • 方式一:通过HTML标签中的事件属性进行绑定(HTML代码和js代码耦合在一块,没有做到职责单一)
    在这里插入图片描述
  • 方式二:通过DOM元素属性绑定(推荐使用)
    在这里插入图片描述

【示例】

<body>
<input type="button" value="点我" onclick="on()"><br><br>
<input type="button" value="再点我" id="btn"><br>

<script>
  //方式一:
  function on(){
    alert("被点了")
  }
  
  //方式二:
  document.getElementById("btn").onclick = function (){
    alert("被点了");
  }
</script>
</body>

7.2 常见事件

HTML DOM 事件
常用的事件属性:
在这里插入图片描述

8 案例:表单验证

需求:

  1. 当输入框失去焦点时,验证输入内容是否符合要求
  2. 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交

环境准备:
基础结构:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="../css/register.css" rel="stylesheet">
</head>
<body>
    <div class="form-div">
        <div class="reg-content">
            <h1>欢迎注册</h1>
            <span>已有帐号?</span> <a href="#">登录</a>
        </div>
        <form id="reg-form" action="#" method="get">
            <table>
                <tr>
                    <td>用户名</td>
                    <td class="inputs">
                        <input name="username" type="text" id="username">
                        <br>
                        <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                    </td>
                </tr>
 
                <tr>
                    <td>密码</td>
                    <td class="inputs">
                        <input name="password" type="password" id="password">
                        <br>
                        <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                    </td>
                </tr>
 
                <tr>
                    <td>手机号</td>
                    <td class="inputs"><input name="tel" type="text" id="tel">
                        <br>
                        <span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span>
                    </td>
                </tr>
            </table>
            <div class="buttons">
                <input value="注 册" type="submit" id="reg_btn">
            </div>
            <br class="clear">
        </form>
 
    </div>
 
 
    <script>
 
    </script>
</body>
</html>

css文件:

* {
    margin: 0;
    padding: 0;
    list-style-type: none;
}
.reg-content{
    padding: 30px;
    margin: 3px;
}
a, img {
    border: 0;
}

body {
    background-image: url("../imgs/reg_bg_min.jpg") ;
    text-align: center;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

td, th {
    padding: 0;
    height: 90px;

}
.inputs{
    vertical-align: top;
}

.clear {
    clear: both;
}

.clear:before, .clear:after {
    content: "";
    display: table;
}

.clear:after {
    clear: both;
}

.form-div {
    background-color: rgba(255, 255, 255, 0.27);
    border-radius: 10px;
    border: 1px solid #aaa;
    width: 424px;
    margin-top: 150px;
    margin-left:1050px;
    padding: 30px 0 20px 0px;
    font-size: 16px;
    box-shadow: inset 0px 0px 10px rgba(255, 255, 255, 0.5), 0px 0px 15px rgba(75, 75, 75, 0.3);
    text-align: left;
}

.form-div input[type="text"], .form-div input[type="password"], .form-div input[type="email"] {
    width: 268px;
    margin: 10px;
    line-height: 20px;
    font-size: 16px;
}

.form-div input[type="checkbox"] {
    margin: 20px 0 20px 10px;
}

.form-div input[type="button"], .form-div input[type="submit"] {
    margin: 10px 20px 0 0;
}

.form-div table {
    margin: 0 auto;
    text-align: right;
    color: rgba(64, 64, 64, 1.00);
}

.form-div table img {
    vertical-align: middle;
    margin: 0 0 5px 0;
}

.footer {
    color: rgba(64, 64, 64, 1.00);
    font-size: 12px;
    margin-top: 30px;
}

.form-div .buttons {
    float: right;
}

input[type="text"], input[type="password"], input[type="email"] {
    border-radius: 8px;
    box-shadow: inset 0 2px 5px #eee;
    padding: 10px;
    border: 1px solid #D4D4D4;
    color: #333333;
    margin-top: 5px;
}

input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus {
    border: 1px solid #50afeb;
    outline: none;
}

input[type="button"], input[type="submit"] {
    padding: 7px 15px;
    background-color: #3c6db0;
    text-align: center;
    border-radius: 5px;
    overflow: hidden;
    min-width: 80px;
    border: none;
    color: #FFF;
    box-shadow: 1px 1px 1px rgba(75, 75, 75, 0.3);
}

input[type="button"]:hover, input[type="submit"]:hover {
    background-color: #5a88c8;
}

input[type="button"]:active, input[type="submit"]:active {
    background-color: #5a88c8;
}
.err_msg{
    color: red;
    padding-right: 170px;
}
#password_err,#tel_err{
    padding-right: 195px;
}

#reg_btn{
    margin-right:50px; width: 285px; height: 45px; margin-top:20px;
}

验证:
验证输入框:

  //1.验证用户名是否符合规则
  //获取用户名的输入框
  var usernameInput = document.getElementById("username");
  //绑定onblur事件
  usernameInput.onblur = checkUsername();
  function checkUsername() {
    //获取用户输入的用户名
    var username = usernameInput.value.trim();
    //alert(username);

    //判断用户名是否符合规则,6-12位
    var flag = username.length >= 6 && username.length <= 12;
    if (flag){
      //符合规则
      document.getElementById("username_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("username_err").style.display='';
    }
    return flag;
  }

  //1.验证密码是否符合规则
  //获取密码的输入框
  var passwordInput = document.getElementById("password");
  //绑定onblur事件
  passwordInput.onblur = checkPassword();
  function checkPassword() {
    //获取用户输入的密码
    var password = passwordInput.value.trim();
    //alert(password);

    //判断密码是否符合规则,6-12位
    var flag = password.length >= 6 && password.length <= 12;
    if (flag){
      //符合规则
      document.getElementById("password_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("password_err").style.display='';
    }
    return flag;
  }

  //1.验证手机号是否符合规则
  //获取手机号的输入框
  var telInput = document.getElementById("tel");
  //绑定onblur事件
  telInput.onblur = checkTel();
  function checkTel() {
    //获取用户输入的手机号
    var tel = telInput.value.trim();
    //alert(tel);

    //判断手机号是否符合规则,11位
    var flag = tel.length == 11;
    if (flag){
      //符合规则
      document.getElementById("tel_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("tel_err").style.display='';
    }
    return flag;
  }

验证表单对象:

  //1.获取表单对象
  var regForm = document.getElementById("reg-form");
  //2.绑定onsubmit事件
  regForm.onsubmit = function () {
    //判断每一个表单项是否都符合要求
    var flag = checkUsername() && checkPassword() && checkTel();
    return flag;
  }

9 正则表达式

  • 概念:正则表达式定义了字符串组成的规则
  • 定义
    直接量:(注意不要加引号)var reg = /正则表达式/;
    创建RegExp对象:var reg = new RegExp(“正则表达式”);
  • 方法
    test(str):判断指定字符串是否符合规则,返回 true或 false
  • 语法
^   表示开始
$   表示结束
[]  代表某个范围内的单个字符,比如:[0-9] 单个数字字符
.   代表任意单个字符,除了换行和行结束符
\w  代表单词字符:字母、数字、下划线(),相当于[A-Za-z0-9]
\d  代表数字字符:相当于 [0-9]
  • 量词
+      至少一个
*      零个或多个
?     零个或一个
{x}    x个
{m,}   至少m个
{m,n}  至少m个,最多n个

【示例】使用正则表达式完善上节表单验证案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>欢迎注册</title>
  <link href="../css/register.css" rel="stylesheet">
</head>
<body>
<div class="form-div">
  <div class="reg-content">
    <h1>欢迎注册</h1>
    <span>已有帐号?</span> <a href="#">登录</a>
  </div>
  <form id="reg-form" action="#" method="get">
    <table>
      <tr>
        <td>用户名</td>
        <td class="inputs">
          <input name="username" type="text" id="username">
          <br>
          <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
        </td>
      </tr>

      <tr>
        <td>密码</td>
        <td class="inputs">
          <input name="password" type="password" id="password">
          <br>
          <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
        </td>
      </tr>

      <tr>
        <td>手机号</td>
        <td class="inputs"><input name="tel" type="text" id="tel">
          <br>
          <span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span>
        </td>
      </tr>
    </table>
    <div class="buttons">
      <input value="注 册" type="submit" id="reg_btn">
    </div>
    <br class="clear">
  </form>

</div>


<script>
  //1.验证用户名是否符合规则
  //获取用户名的输入框
  var usernameInput = document.getElementById("username");
  //绑定onblur事件
  usernameInput.onblur = checkUsername;
  function checkUsername() {
    //获取用户输入的用户名
    var username = usernameInput.value.trim();
    //alert(username);

    //判断用户名是否符合规则,6-12位,单词字符组成
    var reg = /^\w{6,12}$/;
    var flag = reg.test(username);
    if (flag){
      //符合规则
      document.getElementById("username_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("username_err").style.display='';
    }
    return flag;
  }

  //1.验证密码是否符合规则
  //获取密码的输入框
  var passwordInput = document.getElementById("password");
  //绑定onblur事件
  passwordInput.onblur = checkPassword;
  function checkPassword() {
    //获取用户输入的密码
    var password = passwordInput.value.trim();

    //判断密码是否符合规则,6-12位
    var reg = /^\w{6,12}$/;
    var flag = reg.test(password);
    if (flag){
      //符合规则
      document.getElementById("password_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("password_err").style.display='';
    }
    return flag;
  }

  //1.验证手机号是否符合规则
  //获取手机号的输入框
  var telInput = document.getElementById("tel");
  //绑定onblur事件
  telInput.onblur = checkTel;
  function checkTel() {
    //获取用户输入的手机号
    var tel = telInput.value.trim();
    //alert(tel);

    //判断手机号是否符合规则,11位
    var reg = /^[1]\d{10}$/;
    var flag = reg.test(tel);
    if (flag){
      //符合规则
      document.getElementById("tel_err").style.display='none';
    }else {
      //不符合规则
      document.getElementById("tel_err").style.display='';
    }
    return flag;
  }

  //1.获取表单对象
  var regForm = document.getElementById("reg-form");
  //2.绑定onsubmit事件
  regForm.onsubmit = function () {
    //判断每一个表单项是否都符合要求
    var flag = checkUsername() && checkPassword() && checkTel();
    return flag;
  }



</script>
</body>
</html>

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值