正则表达式
1.正则表达式
1.1 正则表达式的概念【了解】
正则表达式 regular expression,简称为regexp、rexgex、RE
正则表达式是用于验证指定字符串是否符合验证模式的一种语法
1.2 正则表达式的优点?【了解】
使用场景:
JS验证字符串长度小于10
string.length < 10
JS验证字符串长度小于10并且必须是字母,JS难以实现,此时需要使用正则
/^[a-zA-Z]{0,10}$/
正则表达式:
1.功能强大
2.语法简短、灵活
3.性能更高
1.3 正则表达式的定义方式【掌握】
1.实例化方式
let regex = new RegExp(正则 | 字符串, 修饰符);
2.字面量方式【常用】
let regex = /匹配模式pattern/修饰符flags
例:/^[a-zA-Z0-9]$/
1.4 正则表达式的常用方法
方法名 | 作用 |
---|---|
【掌握】test(字符串) | 检查指定字符串是否符合匹配模式,能匹配到返回true,不能匹配到返回false |
【了解】exec(字符串) | 检查指定字符串是否符合匹配模式,能匹配到返回包含索引的相关信息,不能匹配到返回null |
1.5 正则表达式的修饰符【掌握】
// 不写g只匹配头一个
let regex = /abc/;
console.log(regex.test("ABC")); // false
// i 不区分大小写
let regex2 = /abc/i;
console.log(regex2.test("Abc")); // true
// g 全局匹配,所有的都要匹配
let regex3 = /abc/g;
console.log(regex3.test("ABC")); // false
console.log(regex3.test("abcd")); // true
2. 事件对象【重点】
事件四要素:
1.事件源-事件发生的源头
2.事件类型-描述发生了什么样的事件
3.事件处理函数-事件发生时执行的函数
4.事件对象-事件发生时,系统自动创建的对象,用于记录事件相关的信息
node.addEventListener('事件类型', function(e/event){
e/event // 事件对象
e.target // 事件源
e.type // 事件类型
e.target.nodeName // 事件源的大写节点名
e.target.localName // 事件源的小写节点名
e.preventDefault() // 阻止默认事件
e.stopPropagation() // 阻止事件传播
e.clientX // 水平位置
e.clientY // 垂直位置
e.keycode // 键盘码
}, useCapture是否使用捕获默认false)
3.DOM事件流【了解】
事件冒泡:事件从目标节点,一层层向上传播到最顶层
事件捕获:事件从目标节点,一层层向下传播到最底层
目标阶段:节点实际触发事件
事件捕获优先于事件冒泡
4.事件委派【重点】
1.为什么要使用事件委派?
1-1.用户交互产生的节点,在页面加载时绑定不上事件,此时需要使用事件委派
1-2.事件委派只需给公共父节点绑定一次事件,性能远高于遍历目标节点绑定事件
部分正则表达式:
一、校验数字的表达式
下划线:^[\w]{6,12}$
-
数字:^[0-9]*$
-
n位的数字:^\d{n}$
-
至少n位的数字:^\d{n,}$
-
m-n位的数字:^\d{m,n}$
-
零和非零开头的数字:^(0|[1-9][0-9]*)$
-
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
-
带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$
-
正数、负数、和小数:^(-|+)?\d+(.\d+)?$
-
有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
-
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
-
非零的正整数:^[1-9]\d$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]*$
-
非零的负整数:^-[1-9][]0-9"$ 或 ^-[1-9]\d$
-
非负整数:^\d+$ 或 ^[1-9]\d*|0$
-
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
-
非负浮点数:^\d+(.\d+)?$ 或 ^[1-9]\d.\d|0.\d[1-9]\d|0?.0+|0$
-
非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$
-
正浮点数:^[1-9]\d.\d|0.\d[1-9]\d$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
-
负浮点数:^-([1-9]\d.\d|0.\d[1-9]\d)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$
-
浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$
推荐阅读: