«

正则表达式

yang 发布于 阅读:344 JS中阶阶段


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}$

  1. 数字:^[0-9]*$

  2. n位的数字:^\d{n}$

  3. 至少n位的数字:^\d{n,}$

  4. m-n位的数字:^\d{m,n}$

  5. 零和非零开头的数字:^(0|[1-9][0-9]*)$

  6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

  7. 带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$

  8. 正数、负数、和小数:^(-|+)?\d+(.\d+)?$

  9. 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

  10. 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

  11. 非零的正整数:^[1-9]\d$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]*$

  12. 非零的负整数:^-[1-9][]0-9"$ 或 ^-[1-9]\d$

  13. 非负整数:^\d+$ 或 ^[1-9]\d*|0$

  14. 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

  15. 非负浮点数:^\d+(.\d+)?$ 或 ^[1-9]\d.\d|0.\d[1-9]\d|0?.0+|0$

  16. 非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$

  17. 正浮点数:^[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]))$

  18. 负浮点数:^-([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])))$

  19. 浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$

版权所有:微4e
文章标题:正则表达式
除非注明,文章均为 微4e 原创,请勿用于任何商业用途,禁止转载

推荐阅读:


扫描二维码,在手机上阅读
请先 登录 再评论