正则表达式
1 . 什么是正则表达式
正则表达式( Regular Expression
)是 : 对字符串进行匹配运算的内置对象
- (1) 表达式 : 对字符串进行逻辑匹配运算
- (2) 内置对象 : js语言提供好的内置对象,存储一些对字符串进行匹配运算的方法。
2 . 正则表达式作用
对字符串进行逻辑匹配运算( 格式校验 )
3.正则表达式使用流程
(1) 声明正则对象 :
- 语法 :
let reg = new RegExp( /正则表达式/ )
(2) 调用对象 test 方法 : - 语法 :
reg.test( '要校验的字符串' )
- true : 符合规则
- false : 不符合规则
//(1)声明正则对象
let reg = new RegExp(/a/)
//(2)调用正则对象test方法
console.log( reg.test('wfsfsfsf') ) // false 没有a
console.log( reg.test('wfsafsfsf') ) // true 有a
正则表达式字面量写法
有一些内置对象有字面量写法
- 数组:
new Array()
:[]
- 对象:
new Object()
:{}
- 正则:
new RegExp(/正则/)
:/正则/
console.log( /a/.test('xdgbdfgd') ) // false 没有a
4 . 正则表达式语法组成
正则表达式语法由两部分组成
1 . 原义文本字符
字符串本身的含义
- PS : 别多想,写什么就是什么。想的越多,错的越离谱
- 示例 :
/黄金/
: 含义检测字符串中有没有掘金- PS : 不是检测有黄, 也不是去检测有金, 也不是去检测既有黄又有金,就是检测字符串有没有黄金而已
console.log(/黄金/.test('黄土的人'))//false
console.log(/黄金/.test('找金子的人'))//false
console.log(/黄金/.test('黄了金子的人'))//false
console.log(/黄金/.test('黄金前端程序员'))//true
- 示例2 :
/abc/
: 含义检测字符串有没有abc
console.log( /abc/.test('a123') )//false
console.log( /abc/.test('a1b23') )//false
console.log( /abc/.test('a1b2c3') )//false
console.log( /abc/.test('123abc') )//true
2 . 元字符
改变了字符串本身的含义, 类似于js中的关键字
- 元字符包含有
[]
: 字符类[^]
: 反向类[0-9]
: 范围类. \ |
: 预定义类^ $
: 边界{}+ ? *
: 量词()
: 分组g i m
: 修饰符
5 . 元字符 - 字符类
[]
字符类 : 将某种特征的字符归为一类。
/[abc]/
: 将 a 或 b 或 c 这种字符归为一类- 直意思为 : 检测字符串有没有 a 或 b 或 c
console.log(/[abc]/.test('a123'))//true
console.log(/[abc]/.test('a123b123'))//true
console.log(/[a