什么是正则表达式?
正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。
通常用来查找,替换,提取那些符合正则表达式的文本。
例如:在用户注册的时候我们通常会使用正则表达式,用户名只能输入英文字母或者数字,下划线,长度是6到18。
正则表达式的语法
1.定义正则表达式
const 变量名 = /表达式/
const age =/18/
2.判断是否有符合规则的字符串
2.1 test()方法 用来查看正则表达式与指定的字符串是否匹配
//test()返回的是布尔值 true或者false
const sp = "生活充满惊喜";
const reg = /惊喜/;
console.log(reg.test(sp)); //true
2.2 exec()方法 在一个指定字符串中执行一个搜索匹配 返回的是数组
const sp = "生活充满惊喜";
const reg = /惊喜/;
console.log(reg.exec(sp)); //['惊喜', index: 4, input: '生活充满惊喜', groups: undefined]
3.元字符
3.1 边界符 (表示位置)
边界符 | 说明 |
^ | 表示匹配首行的文本(以谁开是) |
$ | 表示匹配行尾的文本(以谁结束) |
^ $ | 表示精确匹配 |
3.2 量词(表示重复次数)用来设定某个模式出现的次数
量词 | 说明 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n或更多次 |
{n,m} | 重复n到m次 |
3.3 字符类
(1)[]匹配字符集合
比如:[abc]字符串中只要包含abc中任意一个字符,都返回true
(2)[]里面加上-连字符
比如:[a-z]匹配小写字母a-z之间的26个字符
(3)[ ]里面加上^取反符号
比如:[^a-z]匹配除了小写字母以外的字符
(4)预定义:指的是某些常见模式的简写方式
修饰符
修饰符约束正则执行的某些细节行为,如是否区分大小写,是否支持多行匹配等。
语法:/表达式/修饰符
i是单词ignore的缩写,正则匹配时字母不区分大小写
g是单词global的缩写,匹配所有满足正则表达式的结果
replace替换