JS-4

1.正则表达式(RegExp)
    1)正则表达式的基本语法规则
        语法:
            创建正则表达式对象:
            var reg = new RegExp(pattern,modifiers);
            或者
            var reg = /pattern/modifiers;
        注:
            
        pattern   描述了表达式的模式/规则
        modifiers 用于指定全局匹配、区分大小写的匹配和多行匹配
        
        对应修饰符modifiers有三个选项:
        i     执行对大小写不敏感的匹配。
        g     执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
        m     执行多行匹配。
        同时在创建正则表达式对象的是也可以不写修饰符,默认即可


    2)pattern内容的分析
        
        括号:
            [abc]     查找方括号之间的任何字符。
            [^abc]     查找任何不在方括号之间的字符。
            [0-9]     查找任何从 0 至 9 的数字。
            [a-z]     查找任何从小写 a 到小写 z 的字符。
            [A-Z]     查找任何从大写 A 到大写 Z 的字符。
            [A-z]     查找任何从大写 A 到小写 z 的字符。
            (red|blue|green)     查找任何指定的选项。
        
        元字符:
            .     查找单个任意字符,除了换行和行结束符.如果要表示.这个字符,需要转义
            \w     查找单词字符。     字母 数字 _
            \W     查找非单词字符。非 字母 数字 _
            \d     查找数字。
            \D     查找非数字字符。
            \s     查找空白字符。
            \S     查找非空白字符。
            \b     匹配单词边界。
            \B     匹配非单词边界。
            \0     查找 NUL 字符。
            \n     查找换行符。
            \f     查找换页符。
            \r     查找回车符。
            \t     查找制表符。
            \v     查找垂直制表符。

        量词:
            n+         匹配任何包含至少一个 n 的字符串。
            n*         匹配任何包含零个或多个 n 的字符串。
            n?         匹配任何包含零个或一个 n 的字符串。
            n{X}     匹配包含 X 个 n 的序列的字符串。
            n{X,Y}     匹配包含 X 到 Y 个 n 的序列的字符串。
            n{X,}     匹配包含至少 X 个 n 的序列的字符串。
            n$         匹配任何结尾为 n 的字符串。
            ^n         匹配任何开头为 n 的字符串。
            ?=n     匹配任何其后紧接指定字符串 n 的字符串。
            ?!n     匹配任何其后没有紧接指定字符串 n 的字符串。
    
    3)支持正则表达式的 String 对象的方法
        使用字符串对象的相关方法按照正则表达式所描述的规则去搜索、匹配、替换、分割.

        search     检索与正则表达式相匹配的值。
        match     找到一个或多个正则表达式的匹配。
        replace     替换与正则表达式匹配的子串。
        split     把字符串分割为字符串数组。

    4)RegExp 对象方法
        使用正则表达式对象(RegExp)的相关方法来对指定字符串进行格式的验证.

        compile 编译正则表达式。
        exec     检索字符串中指定的值。返回找到的值,并确定其位置。
        test     检索字符串中指定的值。返回 true 或 false。
        
        
    5)例子
        var v = "aa1a";
        //字符串中包含数字就行
        var reg = /\d/;
        console.log(reg.test(v));

        var v = "aaa1111aa";
        //字符串中连着出现4次(或者更多)数字即可
        var reg = /\d{4}/;
        console.log(reg.test(v));

        var v = "1111";
        //^表示开头 $表示结尾
        //开头和结尾直接必须连续出现4次数字
        var reg = /^\d{4}$/;
        console.log(reg.test(v));

        
        var v = "1aaa2345";
        //开头一个非0数字,后面跟任意字符0-n个,最后4个数字结尾
        var reg = /^[1-9]{1}.*\d{4}$/;
        console.log(reg.test(v));


        var v = "aaredaa";
        //red go yes 三个单词任意匹配
        var reg = /(red|go|yes)/;
        console.log(reg.test(v));


        var v = "a1";
        //开头是一个字符 结尾是一个数字(一共俩个字符)
        var reg = /^\w\d$/;
        console.log(reg.test(v));

        var v = "aasd11111";
        //开头是字符(1-n个),结尾是个数字
        var reg = /^\w+\d$/;
        console.log(reg.test(v));
        
        var v = "aasd11111.com";
        //开头是字符(1-n个),结尾.com
        var reg = /^\w+(\.com)$/;
        console.log(reg.test(v));

        var v = "aasd  )_###11111";
        //开头是字符(1-n个)  中间随意匹配 结尾是一个数字
        var reg = /^\w+.*\d$/;
        console.log(reg.test(v));
        
        //email验证
        var v = "test@briup.com";
        //var reg = /^\w+@\w+(\.[A-z]{2,3}){1,2}$/;
        var reg = /^\w+@\w+\.\w+/;
        console.log(reg.test(v));




2.表单验证
    
    第一种方式:提交的时候验证
    <form action="" οnsubmit="return jsCheck()">
            <input type="text" name="name" /><br>
            ...
            ..
            ..
            ..
            <input type="submit" value="提交" />
    </form>

    注意:οnsubmit="return jsCheck()"表示表单提交之前先调用jsCheck()这个函数进行验证,然后jsCheck()返回true表示通过验证,则表单可以继续提交,返回false表示验证失败,表单不能提交.

    第二种方式:在填写输入框的时候或者输入框失去焦点的时候进行验证,和第一种方式验证的时间点不同,但是验证使用的函数都是一样的.
    例如使用onkeyup事件,可以在用户边输入的时候边验证

    
    注意:javascript代码也可以提交表单:
        document.forms.myForm.submit();

    

    例如:使用document拿到name="f"的页面表单并设置提交表单事件
    document.forms.f.onsubmit = function(){
        //这个函数中的this表示当前表单对象f

        //获得name="username"的输入框的值
        console.log(this.username.value);
        //获得name="password"的输入框的值
        console.log(this.password.value);
        
        //获得name="gender"的单选框(可以是多个)
        console.log(this.gender);
        //可以获得当前用户选的那个单选框的值
        console.log(this.gender.value);
        //可以设置单选框选择男(0)或者女(1)
        this.gender.value = 1;
        //也可以这样俩种方式设置某个单选框被选中
        this.gender[1].checked = "checked";
        this.gender[1].checked = true;
        //可以取消某个已经被选择的单选框 注意是取消不是选另一个
        this.gender[1].checked = false;

        //获得表单中name="like"的多选框(可以有多个)
        console.log(this.like);
        //查询每个多选框是否被选中
        console.log(this.like[0].checked);
        console.log(this.like[1].checked);
        console.log(this.like[2].checked);
        
        //可以自己设置某个多选框被选中
        this.like[2].checked = true;
        this.like[2].checked = "checked";
        //可以取消选中某一个多选框
        this.like[2].checked = false;
        
        //可以查看被选中的多选框的值
        //不能使用for-in循环 this.like集合对象中除了下标还有其他的属性
        for(var i=0;i<this.like.length;i++){
            if(this.like[i].checked){
                console.log(this.like[i].value);
            }
        }
        
        //可以给某一个多选框添加点击事件
        //每次点击之后我们可以知道用户是选中了还是取消了此多选框
        this.like[0].onclick = function(){
            console.log(this.checked);
        }
        
        //获得表单中name="city"的下拉列表
        console.log(this.city);
        //获得下拉列表中当前被选中的值
        console.log(this.city.value);
        //设置下拉列表中哪一个值被选中
        this.city.value = 2;
        
        //获得此下拉列表中所有option元素对象
        var opt = this.city.getElementsByTagName("option");
        //可以用俩种方式让某一个选项被选中
        opt[2].selected = true;
        opt[2].selected = "selected";
    
    }





3.浏览器对象模型Browser Object Model (BOM)
    BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。BOM的核心对象是window,它表示浏览器的一个实例,在浏览器中window对象有双重角色既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。
    
    1)窗口大小
        innerWidth    页面视图区的宽度
          innerHeight    页面视图区的高度
          outerWidth    浏览器窗口的宽度
          outerHeight    浏览器窗口的高度
        所有主流浏览器都支持innerWidth,innerHeight,outerWidth,outerHeight 属性。注意:IE8及更早IE版本不支持这些属性。

        例如:
        console.log(window.innerWidth);
        console.log(window.innerHeight);
        console.log(window.outerWidth);
        console.log(window.outerHeight);
    2)scrren对象
        屏幕总宽度/高度:
            screen.width
            screen.height

        例如:
            console.log(window.screen.width);
            console.log(window.screen.height);

    
    3)打开/关闭窗口
          window.open()
            例如:
              window.open("http://www.baidu.com","newwindow","height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no");
            打开的新窗口高为100,宽为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏
        
            或者
            简单的使用window.open("http://www.baidu.com");即可

        window.colse();
            注意firefox浏览器中会不起作用,需要修改为以下写法:
            window.open("","_self").close();
            同时在FireFox需要设置一个浏览器参数:
            在Firefox地址栏里输入 about:config
            在配置列表中找到 dom.allow_scripts_to_close_windows
            把默认的false值修改为true即可。默认是false,是为了防止脚本乱关窗口


    4)location对象
        是最有用的BOM对象之一,提供了与当前窗口中加载的文档有关的信息,还提供一些导航功能。location是个神奇的对象,既是window的对象也是document的对象。
        console.log(window.location == document.location);//true
        
        属性:
            host        返回服务器名称和端口号
            hostname    返回不带端口号的服务器名称
            href        返回当前加载页面的完整URL
            pathname    返回URL的目录和文件名
            port        返回URL中指定的端口号
            protocol    返回页面使用的协议
            search        返回URL的查询字符串。这个字符串以问号开头
        
        方法:
            assign()    传递一个url参数,打开新url,并在浏览记录中生成一条历史记录。
            replace()     参数为一个url,结果会导致浏览器位置改变,但不会在历史记录中生成新记录
            注意:有历史记录就可以回退,没有则不能回退

              reload()    重新加载当前显示的页面,参数可以为boolean类型,默认为false,表示以最有效方式重新加载,可能从缓存中直接加载。如果参数为true,强制从服务器中重新加载
        
        注意:
            以下三句话效果一样
            window.location="http://www.baidu.com";
            location.href="http://www.baidu.com"
            location.assign("http://www.baidu.com");


    5)history对象
        window.history 对象包含浏览器的历史
        例如:
        history.back()    - 与在浏览器点击后退按钮相同
        history.forward() - 与在浏览器中点击按钮向前相同
        history.go(-3);
            
    6)window的超时调用和定时调用    
        javascript是单线程语言,但是可以通过 超时值 和 间歇时间 来调度代码在特定时刻执行
        1.setTimeout();
            该方法返回一个数值ID,表示超时调用,超过指定时间后自动调用一次指定函数。这个超时调用ID是计划执行代码的唯一标识符通过它来取消超时调用。可以通过clearTimeout(ID)取消调用    

            参数:
                  1.要执行的代码
                2.以毫秒表示的时间。

            例如:
                //一秒后调用
                //只执行一次
                var id = setTimeout(function(){
                    alert("hello");
                },1000);
                console.log(id);

                //清除
                clearTimeout(id);
            
        2.setInterval();
            按照指定的时间间隔重复执行代码,直到间歇调用被取消或页面被卸载。调用该方法也会返回一个间歇调用ID,该ID可以用户在将来某个时刻取消间歇调用
            
            参数:
                  1.要执行的代码
                2.以毫秒表示的时间。
                  clearInterval(ID);  //取消间歇调用

            例如:
                //每隔五秒钟调用一次函数
                var id = setInterval(function(){
                    alert("hello");
                },5000);
                console.log(id);

                //清除
                clearInterval(id);



-----------------------------------------------------

特殊的css
      1) 元素的显示和可见性
          visibility:
            hidden  元素不可见,但是在文档布局中保留了它的空间。
            visible    元素可见
          display    
            none    元素不可见,在文档布局中不给它分配空间,它的各边元素会合拢,就当它不存在过。在展开和折叠轮廓的效果时,display属性很有用。
 
    2) 颜色,透明度
          opacity 透明度:0~1之间的数字
          filter: IE中表示透明度 0~100之间的数字
        常用表示透明度的方法
                  opacity: 0.75;
                  filter:alpha(opacity=75);




javascript中设置元素特殊名字的css的属性
    style 属性,该属性的值不是字符串,而是一个CSSStyleDeclaration对象,该对象代表了HTML代码中通过style指定的css属性。javascript中的css属性大多与标签中的css属性相同,但是如果css样式属性在名字中出现了连字符,该属性名的格式应该是移除连字符,将每个连字符后面紧接着的字母大写,如
        background-color =>e.backgroundColor
        其他的例子:
        e.style.fontSize = "24px";
        e.style.fontWeight = "bold";
        e.style.color = "blue";



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值