正则表达式
提取没学,正则表达式分组没学
1.定义:正则表达式是对象
2.作用
(1)匹配:匹配字符串中的字符组合,设置input的限制(位数/纯数字)
(2)替换:过滤页面内容敏感词
(3)提取:字符串获取特定的部分(输入几个字,把其它字补全)
3.书写规范:
(1)正则表达式内不需要加引号,任何类型
(2)检测的字符串需要加引号
(3)- 号为范围符号;abcdefg=a - g; 123456789=0-9
预定于类 | 替代 |
---|---|
\d | 等价于[0-9] |
\D | 等价于[ ^0-9] |
\w | 等价于[ A-Za-z0-9_ ] |
\W | 等价于[ ^A-Za-z0-9_ ] |
\s | 匹配空格,换行,制表位等等 |
\S | 匹配非空格 |
(4)贴着写: /[a - g0-9A-Z]/
(5)或者的符号: |
(6)量词类{ 花括号内不能有空格 }
4.创建方式
1.var lzy = new RegExp(/表达式/)通过RegExp构造函数创建正则表达式对象
2.var lzy = /表达式/ ;通过字面量方式创建
5.检测字符串是否匹配正则表达式
var 正在表达式 = / abc / ;
var true/false = 正则表达式对象名.test("表达式"):结果为true / false
6.正则表达式代码
1.取反符:[^] 字符类里面的^为取反的意思,不要和边界符混淆
2.边界符
(1)^ var lzy = / ^abc / ; 表达式字符串前三位为abc,返回值为true
(2)$ var lzy = / abc$ / ;表达式字符串后三位为abc,返回值为true
(3)^和$ var lzy = / ^abc$ / ;(精确查找)表达式字符串必须为abc,返回值为true
3.字符类[ ]
(1)var lzy = / [abc] / ;表达式字符串,只要有a或者b或者c,返回值为true
(2)var lzy = / ^[abc]$ / ;表达式字符串,必须只能是单个的a或者b或者c,返回值为true
(3)var lzy = / ^[^abc]$ / ;表达式字符串,除了单个的a或者b或者c,返回值为true
4.量词类{ }
(1)* var lzy = / ^a*$ / ;表达式字符串,0-无数个a,返回值为true
(2)+ var lzy = / ^a+$ / ;表达式字符串,1-无数个a,返回值为true
(3)? var lzy = / ^a?$ / ;表达式字符串,出现一次或者一次都不出现,返回值为true
var lzy = / ^[abc]$ / ;因为只能是一个,aa也报错,所以有以下功能
(4){n,m} var lzy = / ^[abc]{ 6,16 }$ / ;只能是abc,6-16次为true
(5){n} var lzy = / ^abc$ {n} / ;abccc为true,其他都是false
(6){n} var lzy = / ^[abc]$ {n} / ;abc互相排列,有n个就行
(7){n,} 大于等于n次
7.正则表达式替换
(1)定义:敏感词替换
(2)代码
1.字符串.replace(旧字符串部分字符,替换的新字符串部分字符)
2.字符串.replace(/旧字符串部分字符1 |旧字符串部分字符2 /,替换的新字符串部分字符)
3.字符串.replace(/旧字符串部分字符/ gi ,替换的新字符串部分字符)
8.正则表达式参数
g | 全局匹配 |
i | 忽略大小写 |
gi | 全局匹配+忽略大小写 |