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]
- 非:^,必须在中元符内使用