正则的概念和意义
- 什么是正则
- 使用正则的意义
- 快速的对字符串进行验证,替换,查询操作
- 除非极端情况,正则既可以节省操作,又可以节省性能
创建正则
- 字面量创建
- 构造函数创建
- var reg = new RegExp(参数1,参数2)
- 参数1是变量,可以是正则表达式,需要使用转义字符
- 参数2可以不写,是正则修饰符
字面量创建的正则不可以使用变量,构造函数可以
正则的写法
- 修饰符 加在正则的后面
- 量词
+
一个或一个以上*
0个或0个以上- ? 0或1个
- {n} 固定n个
- {n,} n个以上
- {n,m} n到m个
- 边界符
- 或
- 非
- 子集
- 范围符
-
从a到z a-z- [] 用来标记范围,内部所有组成都是或的关系
- 转义符
- \ 把有正则中有特殊意义的字符转换为无意义的字符
- \d 所有数字 [0-9]
- \D 所有非数字 [^\d]
- \w 所有字母、数字、下划线 等同于[a-zA-Z0-9]
- \W 非字母数字下划线
- \s 空格
- \S 非空格
- . 非换行任意字符
正则如何使用
- 通过正则的方法进行操作
- reg.test(str)
- 验证str是否符合reg
- 默认验证局部字符串,只要字符串有一部分符合就符合,通过修饰符g验证全部字符
- 标记开头^和结尾$,从第一位验证到最后一位
- reg.exec(str)
- 查询符合reg的str
- 每次查询都会从上次查询的位置开始继续查询,直到查询到最后返回null
- 正则开始验证的位置是可以修改的
- 正则的属性:lastIndex 表示查询到字符的某个位置的索引
- 通过字符的方法进行操作
- 替换 str.replace(reg,“newStr”)
- 查询 str.match(reg)
- 返回值就是查询到的内容,一个数组
- 根据制定规则查询字符串中符合的子串,放在一个数组中
- 查询 str.search(reg)
正则中的中文范围
/^[\u2E80-\u9FFF]$/
/^[\u4E00-\u9Fa5]$/
读写正则的思想
- 写正则
- 如果规则是自己定的,那么正则就可以自己写
- 如果规则是别人定的,那么先去找到规则,根据规则去写正则
- 正则的读法
- 熟记所有的符号
- 逐行读取,注意小括号要作为一个整体,中括号表示一位