博客
关于我
JavaScript——原生
阅读量:528 次
发布时间:2019-03-08

本文共 2176 字,大约阅读时间需要 7 分钟。

正则表达式与DOM操作

正则表达式

概述

正则表达式用于描述文本内容的匹配规则,是一种强大的文本检索工具。在网页开发中,尤其是注册、验证、格式化输入等场合,正则表达式应用广泛。

创建方法

正则表达式有两种主要创建方式:

  • 使用new RegExp构造函数:
  • var reg = new RegExp(/表达式/);
    1. 使用字面量:
    2. var reg = /表达式/;

      常用修饰符

    3. ^$

      • ^:匹配字符串开头
      • $:匹配字符串结尾
      • 综合使用时,表示严格匹配整个字符串。
    4. img

      • i:忽略大小写
      • m^$匹配行首和行尾
      • g:全局匹配
    5. 量词:

      • ?:匹配零或一
      • *:匹配零或多个
      • +:匹配一或多个
      • quantifier digits:如{4}表示4-4次重复
    6. 范围类:

      • [a-z]:匹配小写字母
      • [A-Z]:匹配大写字母
      • [0-9]:匹配数字
      • [a-zA-Z0-9]:匹配字母和数字
    7. 预定义字符:

      • \w:匹配单词字符(字母、数字、下划线)
      • \d:匹配所有数字字符
      • \D:匹配所有非数字字符
      • \s:匹配所有空格字符
      • \b:单词边界
    8. 实例

      // 匹配"abc"var reg = /abc/;//匹配不包含"abc"var reg = /[^abcv]/;//匹配包含"a"或"b"var reg = /a|b/;

      DOM操作

      父节点获取

    9. parentNode:返回父节点元素。
    10. parentElement:返回父元素节点,返回null若父节点不存在。
    11. 子节点获取

    12. childNodes:返回该节点的所有子节点,按递进序列。
    13. firstElementChild:返回第一个子元素节点。
    14. lastElementChild:返回最后一个子元素节点。
    15. firstChild:返回第一个子节点(包括文节点)。
    16. lastChild:返回最后一个子节点(包括文节点)。
    17. 兄弟节点获取

    18. nextElementSibling:返回当前节点的下一个兄弟节点。
    19. previousElementSibling:返回当前节点的上一个兄弟节点。
    20. 节点操作

    21. 创建节点:
    22. var li = document.createElement('li');
      1. 添加节点:
        • appendChild:将节点添加至父节点的最后。
        • insertBefore:将节点插入至父节点的指定位置。
        1. 删除节点:
        2. parent.removeChild(node);node.remove();
          1. 替换节点:
          2. parent.replaceChild(newNode, oldNode);
            1. 克隆节点:
            2. var cloned =reeNode.cloneNode();

              事件处理

            3. 事件对象的this指针:

              • 普通函数中this指向window
              • 使用new构造器时this指向构造函数返回的对象。
            4. 事件委托(事件冒泡):

            5. 元素.addEventListener('事件类型', 函数名, {capture: true});

              包含实例

              // 正则表达式var reg = /a|b/i;console.log(reg.test('aba')); // trueconsole.log(reg.test('abz')); // true// DOM操作var ul = document.querySelector('ul');var li = document.querySelector('li');var meng = document.createElement('li');// 创建节点var li_new = document.createElement('li');// 更新节点ul.appendChild(li_new);console.log(ul.firstChild === li_new); // true// 删除节点ul.removeChild(li);// 克隆节点var meng_two = meng.cloneNode();

              闭包与作用域链

              闭包允许函数持久化局部变量,控制变量的使用范围。

              闭包的作用

              • 让函数持久化本地变量。
              • 提供灵活的变量管理机制。

              闭包的实现

              function big() {    var c = 10;    return function small() {        console.log(c);    };}var test = big();test();

              दस大JS基础

              作用域链

              作用域链是解决变量查找问题的机制,按顺序查找当前作用域,到全局对象。

              变量提升

              未声明的变量会被提升至最近的可访问位置。

              匿名函数自调用

              (function () {    console.log('自调用函数执行');})();

              事件处理

              div.addEventListener('click', function (e) {    console.log('元素被点击');    e.preventDefault();});

              事件代理

              ul.addEventListener('click', function (e) {    console.log('列表项被点击');}, false);

              通过以上知识,可以更高效地编写和优化你的javascript代码。

    转载地址:http://txwiz.baihongyu.com/

    你可能感兴趣的文章
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>
    Netty工作笔记0024---SelectionKey API
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0028---NIO 网络编程应用--群聊系统3--客户端编写1
    查看>>
    Netty工作笔记0034---Netty架构设计--线程模型
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0057---Netty群聊系统服务端
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0063---WebSocket长连接开发2
    查看>>
    Netty工作笔记0070---Protobuf使用案例Codec使用
    查看>>
    Netty工作笔记0072---Protobuf内容小结
    查看>>
    Netty工作笔记0074---handler链调用机制实例1
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0081---编解码器和处理器链梳理
    查看>>
    Netty工作笔记0083---通过自定义协议解决粘包拆包问题1
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>