简介:正则表达式的作用
1. 表单验证
2. 敏感词替换
1. 定义
const ex = /正则表达式/; js的正则表达式定义在两个/之间
2. 匹配规则
2.1 单字符匹配
定义在[ ]之间,
/[a-z]/ 代表匹配1个a到z的小写字母
/[A-Z]/ 代表匹配1个A-Z的大写字母
/[0-9]/ 代表匹配一个数字
. 点可以匹配一个除了换行以外的任何字符
/[0-9a-zA-Z_]/ 代表0到9,a到z, A到Z和下划线中任意一个字符,-代表范围,相邻值是或的关系。
2.2 多字符匹配
/abc/ 代表配置abc这个字符串
/abc | def/ 用|分割表示或者,匹配一个abc活def字符
3. 量词
* 表示0次以上, + 表示1次以上, ? 表示0次或1次。
{n}表示固定n次,{n,}表示n次及以上,{n,m}表示n到m次
例子:/[a-z]*/ 表0次以上a到z字符, /abc+/表示 ab和1次以上的c, /[A]?/ 表示0次或1次A
/[a-z]{2}/ 表示2个连续的小写字母
4. 边界符
/a/ 可匹配开头的a和文本中间的a,和文本结束的a
/^a/ 只能匹配开头的a
/a$/ 只能匹配结尾是a
[ ]中的^代表取反。例如 /[^0-9]/代表匹配一个0到9以外的字符
5. 预定义
\d 代表[0-9], \D 代表[^0-9]
\w 代表[a-zA-Z0-9_] , \W 代表[^a-zA-Z0-9_]
\s 代表取换行空格[\t\r\n\v\f] , \S 代表取反
6. 分组
想指定一串规则的次数可以先用小括号分组再指定次数
例如 : /(a[0-9])+/ 代表a接一个数字,出现一次以上
7. 查找替换函数
7.1 查找
/正则/.test(字符串)
例如:/[abc]/.test("123a5") 表示判断123a5中是否包含一个a或b或c,包含返回true,否则返回false
7.2 替换
"abc1d".replace(/[0-9]/, "z") 表示将abc1d字符串中的第一个0-9的数字替换成z
8. 修饰符
i 不区分大小写, 例如 /[ab]/i.test(字符串) 不区分大小写判断字符串中是否包含aAbB的一个。
g 全局,例如 "ab1c2d3".replace(/[0-9]/g, "z") 表示将字符串ab1c2d3中的数字全部替换成z。