正则表达式

1. 概念和意义
    - 概念:
        - 正则表达式,正则对象,正确的规则,描述字符串的规则
        - 正则一般都是配合字符串使用
        - 可以对字符串进行:验证,替换,查询
    - 意义:
        - 快速的验证,查询,替换字符
        - 除非极端情况,正则既可以节省操作,又可以节省性能
2. 如何创建正则
    - 字面量:var reg1 = /正则的内容/;
    - 构造函数:var reg2 = new RegExp();
    - 字面量正则中不允许出现变量,构造函数可以,但是使用都是一致的
3. 如何使用
    - 正则的方法
        ①验证:reg.test(str)               ***
            - 默认验证局部字符串(是否包含)
                - 只要字符串中,有一部分符合,就符合
            - 整体验证,需要标记开头和结尾
                - 从第一位开始验证,验证到最后一位
                - ^:开始
                - $:结束
        ② 查询:reg.exec(str)
            - reg.exec(str)
            - 每次查询时,会在上次查询结束的位置继续查询
            - 直到查询到最后,返回null
            - 继续回到初始位置,开始查询
            - 但其实,正则开始验证的位置,是可修改的
                - 正则的属性:reg.lastIndex
                - 表示查询到字符的某个位置的索引
    ③字符的方法
        - 替换:str.replace(reg,"newStr")   ***
            - 替换
        - 查询:str.match(reg)              ***
            - 根据指定规则,查询字符串中符合的子串,放在一个数组中
        - 查询:str.search(reg)
            - 第一次出现的位置的索引
4. 如何写
    - 修饰符
        - g:全局匹配
        - i:忽略大小写
    - 量词
        - +:一个或以上
        - *:零个或以上
        - ?:零个或一个
        - {n}:固定n次
        - {n,}:至少n次,以上
        - {n,m}:至少n次,最多m次
    - 或:|(匹配的或两边的整体字符)
    - 子集:()
    - 范围符:-
    - 中元符:[],用来标记范围,内部所有组成都是或的关系
    - 转义符:
        - d,表示所有的数字,等同于[0-9]
        - w,表示所有的数字字母下划线,等同于[0-9a-zA-Z_]
        - s,表示空格,等同于: 
        - D,表示除了数字,等同于[^0-9]
        - W,表示除了数字字母下换线,等同于[^a-z0-9A-Z_]
        - S,表示除了空格,[^s]
    - 非:^,必须在中元符内使用
原文地址:https://www.cnblogs.com/yh-3175339026/p/12896269.html