本文共 2176 字,大约阅读时间需要 7 分钟。
正则表达式用于描述文本内容的匹配规则,是一种强大的文本检索工具。在网页开发中,尤其是注册、验证、格式化输入等场合,正则表达式应用广泛。
正则表达式有两种主要创建方式:
new RegExp
构造函数:var reg = new RegExp(/表达式/);
var reg = /表达式/;
^
和 $
:
^
:匹配字符串开头$
:匹配字符串结尾i
、m
和g
:
i
:忽略大小写m
:^
和$
匹配行首和行尾g
:全局匹配量词:
?
:匹配零或一*
:匹配零或多个+
:匹配一或多个quantifier digits
:如{4}
表示4-4次重复范围类:
[a-z]
:匹配小写字母[A-Z]
:匹配大写字母[0-9]
:匹配数字[a-zA-Z0-9]
:匹配字母和数字预定义字符:
\w
:匹配单词字符(字母、数字、下划线)\d
:匹配所有数字字符\D
:匹配所有非数字字符\s
:匹配所有空格字符\b
:单词边界// 匹配"abc"var reg = /abc/;//匹配不包含"abc"var reg = /[^abcv]/;//匹配包含"a"或"b"var reg = /a|b/;
parentNode
:返回父节点元素。parentElement
:返回父元素节点,返回null
若父节点不存在。childNodes
:返回该节点的所有子节点,按递进序列。firstElementChild
:返回第一个子元素节点。lastElementChild
:返回最后一个子元素节点。firstChild
:返回第一个子节点(包括文节点)。lastChild
:返回最后一个子节点(包括文节点)。nextElementSibling
:返回当前节点的下一个兄弟节点。previousElementSibling
:返回当前节点的上一个兄弟节点。var li = document.createElement('li');
appendChild
:将节点添加至父节点的最后。insertBefore
:将节点插入至父节点的指定位置。parent.removeChild(node);node.remove();
parent.replaceChild(newNode, oldNode);
var cloned =reeNode.cloneNode();
事件对象的this
指针:
this
指向window
。new
构造器时this
指向构造函数返回的对象。事件委托(事件冒泡):
元素.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();
作用域链是解决变量查找问题的机制,按顺序查找当前作用域,到全局对象。
未声明的变量会被提升至最近的可访问位置。
(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/