创建正则语法
let 变量名 = /表达式/
其中 / /
是正则表达式的字面量
判断是否是有符合规则的字符串
test(): 用来查看字符串是否符合正则规则
- 是符合,返回true
- 不符合,返回false
语法:正则表达式.test(被检测的字符串)
检索(查找)符合规则的字符串
exec(): 在字符串中搜索匹配的字符串部分
语法:正则表达式.exec(被检测字符串)
- 如果匹配成功,则返回一个数组
- 如果匹配失败,则返回一个
null
let str = '我是测试文字'
let reg = /文/
let result = reg.exec(str)
console.log(result) // 返回的是一个数组
替换字符串
replace()
//要替换的字符串.replace(正则表达式,替换的内容)
let str = '我是谁 你是谁 他是谁'
let reg = /谁/g
console.log(str.replace(reg, '你'))
//我是你 你是你 他是你
元字符
有特殊含义,可以匹配更多规则,如:/[a-z]/
边界符
表示位置,开头和结尾,必须用什么开头,用什么结尾
边界符 | 含义 |
---|---|
^ | 匹配输入的开始。 |
$ | 匹配输入的结束。 |
当 ^
作为第一个字符出现在一个字符集合模式时,它将会有不同的含义.
注意点:当^
和$
一起使用时,表示精准匹配,从头到尾都要符合,常用语表单校验
量词
表示重复次数
量词 | 含义 |
---|---|
* | 重复零次或更多次>=0 |
+ | 重复一次或更多次>=1 |
? | 重复0次或1次 0 || 1 |
{n} | 重复n次==n |
{n,} | 重复n次或更多次>=n |
{n,m} | 重复n到m次n <= 次数 <= m |
注意点: 逗号左右两侧不能出现空格
字符类
特定的字符表示特定的匹配规则
[xxx]
只要字符串中有[]
其中任何一个字符,就匹配成功
console.log(/[abc]/.test('andy')) //a
console.log(/[abc]/.test('baby')) //b
[]
里面有中划线-
,表示一个范围 只要字符串的其中一个符合范围,就匹配成功
[0-9] :0~9的范围
[a-z] :a~z的范围
[A-Z] :A~Z的范围
[0-9a-zA-Z] :0~9 + a~z + A~Z 的范围
[]
里面有一个^
表示取反 只有字符串中有一个符合范围,就匹配成功
[^abc] :除了abc以外的字符
.
匹配除换行符以外的任何单个字符(如果加了s
标志则可以匹配换行符)
console.log(/.b/.test('abc')) //ab
console.log(/.i/.test('liao')) //li
注意点:换行符指的是js字符串中的换行,是\n
,不是<br>
预定义类
预定义类 | 含义 |
---|---|
\d | 匹配0-9的任意数字,相当于[0-9] |
\D | 匹配0-9以外的字符,相当于[^0-9] |
\w | 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_] |
\W | 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_] |
\s | 匹配不可见字符,如:空格、换行\n 、制表符tab \t |
\S | 匹配可见字符 |
修饰符(标志)
语法:/表达式/修饰符
标志 | 描述 |
---|---|
g | 全局搜索 |
i | 不区分大小写搜索 |
s | 允许 . 匹配换行符 |
console.log(/a/g.test('banana')) //a
console.log(/a/i.test('A')) //A
console.log(/a./s.test('ba na na')) //a空格
详细内容请前往正则表达式 – JavaScript | MDN