javaScript2

目录

一、js的自定义对象

1、自定义的对象

二、正则表达式

1、什么是正则表达式

2、常用语法

三、js原生表单校验


一、js的自定义对象

1、自定义的对象

1)定义一个对象,符号函数定义的格式
2)创建对象:var  变量名  =  new  对象(实际参数列表);

1)类似于java中的有参构造

定义一个person对象
创建一个Person对象

例:

<script>
    //定义一个对象
    function Person(name,age){
        this.name = name;
        this.age = age;
        
        this.speakEnglish = function(){
            alert("说英语");
        }
    }
    //创建一个对象
    var p = new Person("张三",18);
    //for-in
    for(var i in p){
        document.writer(p[i]+"&ensp;");
    }   
</script>

2)类似于java中的无参构造

定义对象
创建对象

例:

<script>
    //定义一个对象
    function Person(){}
    //创建对象
    var p = new Person();
    //通过对象名追加
    p.name = "李四";
    p.age  = 19;
    p.speakEnglish = function(mag){
        alert("会说"+mag);
    }
</script>

3)利用js模板对象Object -- 内置对象,代表所有js内置对象的模板

直接创建new  Object();

例:

<script>
    //创建对象
    var p = new Object();
    p.name = "王五";
    p.age = 20;
    p.speck = function(mag){
        alect("会说"+mag);
    }
</script>

4)字面量值“json格式”

例:

<script>
     var p = { //p:json对象    json对象.key获取 value
           "id":1,
           "name":"高圆圆",
           "age":42,
           "address":"西安市",
           "gender":"女",
           "speak":function (msg) {
            alert("会话"+msg) ;
            }
        }
</script>

获取值

<script>
        document.write("学号是:"+p.id+"<br/>") ;
        document.write("姓名是:"+p.name+"<br/>") ;
        document.write("年龄是:"+p.age+"<br/>") ;
        document.write("地址是:"+p.address+"<br/>") ;
        document.write("性别是:"+p.gender+"<br/>") ;
        p.speak("日语") ;
</script>

二、正则表达式

1、什么是正则表达式

能够用浏览器(js)引擎进行解析
限定用户输入数据的一种约束

2、常用语法

1)X字符

X字符:X代表字符

2)数量词相关的语法

X+ :表示X字符出现一次或多次
X?:表示字符出现零次或一次
X* :表示字符出现零次或多次

3)范围相关

\w  等价于[A-Za-z0-9_]: 任意的大小写字母或数字字符
X{n,}  表示至少n次
X{n}  表示恰好出现n次
X{n,m}  X字符串出现n次,不超过m次

4)正则表达式

var  变量名 = /正则语法/;

变量名.test(被校验的字符串)     返回true,匹配成功,否则覅配失败

5)弊端

var  变量名 = /正则语法/;    弊端:不完全匹配,只要字符串中某个字符串满足条件就通过

如果需要进行完全匹配,需要在正则语法的前后加上边界匹配器
    ^:以xxx指定的内容开头
    $:以xxx指定的内容结尾

            var str = "asdf12abc" ;
            //定义正则
            var pattern = /^[0-9]{2}$/ ;
            if(pattern.test(str)){
                alert("条件成立") ;
            }else{
                alert("条件不成立") ;
            }

三、js原生表单校验

1、需求

        用户名:8-16位的数字或者字母
       密码:6-16位的数字字母组成
       确认密码和密码一致
       邮箱符合邮箱格式:
               数字或字母@数字字母.(com/.com.cn/)

2、代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js的原生表单校验</title>
    <style>
        #formDiv{
            border: 1px solid #000;
            width: 420px;
            height: 240px;
            margin: 150px 0 0 400px;
        }
        #userDiv{
            margin: 30px 0 0 60px;
        }
        #pwdDiv{
            margin: 10px 0 0 60px;
        }
        #repwdDiv{
            margin: 10px 0 0 60px;
        }
        #emailDiv{
            margin: 10px 0 0 60px;
        }
        #btnDiv{
            margin: 10px 0 0 80px;
        }
    </style>
</head>
<body>
    <div id="formDiv">
        <!--
            表单是否能够提交取决于当前onsbumit事件(绑定一个函数:将所有的表单项都必须校验)的返回值如果true,表示能够提交
            否则false,不能提交
        -->
​
       <!-- <h3>GET方式提交</h3>-->
        <div>
            <h3>Post方式提交</h3>
        </div>
​
        <!--action:servlet后台地址-->
        <form action="http://localhost:8080/Web_02/args" method="post" onsubmit="return checkAll()">
            <div id="userDiv">
                用户名:<input type="text" name="username" id="username" onblur="checkUserName()" placeholder="请输入用户名"><span id="userTip"></span>
            </div>
            <div id="pwdDiv">
                密&ensp;&ensp;码:<input type="password" name="password" onblur="checkPassword()" id="password" placeholder="请输入密码"><span id="pwdTip"></span>
            </div>
            <div id="repwdDiv">
                确认密码:<input type="password" name="repwd" id="repwd" onblur="checkRePassword()" placeholder="请输入密码"><span id="repwdTip"></span>
            </div>
            <div id="emailDiv">
                 邮箱:<input type="text" name="email" id="email" onblur="checkEmail()" placeholder="请输入邮箱"><span id="emailTip"></span>
             </div>
            <div id="btnDiv">
              <input type="submit" value="注册"><input type="button"  style="margin-left: 30px" value="登录">
            </div>
        </form>
    </div>
​
    <hr/>
​
​
<script>
    //校验用户名:
    function checkUserName(){
        //通过 id="username"获取当前用户名所在的文本框的标签对象并获取它的内容
       var username =  document.getElementById("username").value ;
       //密码:6-16位的数字字母组成
       //定义正则表达式
       var reg = /^[A-Za-z0-9_]{6,16}$/ ;
       //获取id="userTip"的span标签对象
       var spanTip =  document.getElementById("userTip") ;
​
       //校验用户名
        if(reg.test(username)){
            //成立
            spanTip.innerHTML = "恭喜您,可用".fontcolor("green") ;
            return true ;
        }else{
            //不成立
            spanTip.innerHTML = "×".fontcolor("red") ;
            return false ;
        }
    }
​
    //校验用户名:
    function checkPassword(){
        //通过 id="password"获取当前密码所在的文本框的标签对象并获取它的内容
        var password =  document.getElementById("password").value ;
        //用户名:8-16位的数字或者字母
        //定义正则表达式
        var reg = /^[A-Za-z0-9_]{8,16}$/ ;
        //获取id="pwdTip"的span标签对象
        var spanTip =  document.getElementById("pwdTip") ;
​
        //校验用户名
        if(reg.test(password)){
            //成立
            spanTip.innerHTML = "√".fontcolor("green") ;
            return true ;
        }else{
            //不成立
            spanTip.innerHTML = "×".fontcolor("red") ;
            return false ;
        }
    }
​
    //确认密码和密码一致
    function  checkRePassword() {
        //通过 id="password"获取当前密码所在的文本框的标签对象并获取它的内容
        var password =  document.getElementById("password").value ;
        //获取当前确认密码框的内容id="repwd"
       var repassword =  document.getElementById("repwd").value;
       //获取span标签对象
        // id="repwdTip"
        var spanTip = document.getElementById("repwdTip");
       if(repassword==password){
           spanTip.innerHTML="√".fontcolor("green") ;
           return true ;
       }else{
           spanTip.innerHTML = "×".fontcolor("red") ;
           return false ;
       }
​
    }
​
    //校验邮箱
    function  checkEmail() {
        // id="email"的输入的内容
        var email = document.getElementById("email").value ;
        // 邮箱符合邮箱格式:
        //数字或字母@数字字母.(com/.com.cn/.ISTone/)
        //纯QQ邮箱  数字@qq.com
        //本身字符:就是.----转义 \.
         var reg = /^[A-Za-z0-9]+@[A-Za-z0-9]+(\.[A-Za-z]{2,3}){1,2}$/ ;
​
         //获取id="emailTip"的span标签对象
        var spanTip = document.getElementById("emailTip");
        //校验
        if(reg.test(email)){
            spanTip.innerHTML="√".fontcolor("green") ;
            return true ;
        }else{
            spanTip.innerHTML="×".fontcolor("red") ;
            return false ;
        }
​
​
    }
​
    //表单能否提交
    function  checkAll() {
        //将所有的表单项都必须满足规则
        if(checkUserName() && checkPassword() && checkRePassword() && checkEmail()){
            return true ;
        }else{
            return false ;
        }
    }
​
</script>
​
</body>
​
</html>

3、表单提交

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--get提交-->
<form method="get" action="http://localhost:8080/Web_02/resolve">
    用户名:<input  type="text" name="username" /><br/>
    密码:<input type="password" name="password"/><br/>
​
    <input type="submit" value="提交" />
</form>
​
<hr/>
<!--post提交-->
<form method="post" action="http://localhost:8080/Web_02/resolve">
    用户名:<input  type="text" name="username" /><br/>
    密码:<input type="password" name="password"/><br/>
​
    <input type="submit" value="提交" />
</form>
​
​
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彦登的登

动力来源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值