正则表达式的基本使用
前言: 在我们开发过程中,有很多地方需要用到正则表达式。如验证用户登录信息、手机号、邮箱地址等等。那你都会正则表达式的哪几个方法呢?
首先,我们要知道什么是正则表达式。
正则表达式的定义:
- 正则表达式
RegExp (regular expression)
是ECMAScript内置对象,是一个用于对字符串实现逻辑匹配运算的对象
正则表达式的作用:
- 按照某种规则来匹配字符串,而正则表达式就是制定这个规则
如何使用正则表达式
- (1) 创建正则表达式对象
- (2) 开始匹配
使用test()
方法
由于正则表达式非常的晦涩难懂,使用图形可以更好的方便理解,正所谓一图胜千言!
正则表达式图形化网站:https://regexper.com/
下面就让我们步入正题,开始学习正则。
1、元字符与原义文本字符
一个正则表达式主要由两部分组成:
-
原义文本字符 : 就是字符本身的含义,千万别想多
/abc/ // 含义,就是检查字符串中有没有abc。 别想多了 // 不是说有a或者有b或者有c,也不是说有a 和 b 和 c console.log(/abc/.test('a123'));//false console.log(/abc/.test('ab123c'));//false console.log(/abc/.test('abc123'));//true
-
元字符 : 改变了字符串本身的含义 (相当于 js 的关键字)
. \ | [] { } () + ? * $ ^
2、字符类
有时候我们并不想只匹配一个字符,而是想要匹配符合某一类特征的字符,这时就可以使用字符类
1、简单字符类:[]
/[abc]/
// 把字符a或b或c归为一类,可以匹配这类的字符
// 含义是,匹配字符串中只要有 a或者b或者c任何一个即可
console.log ( /[abc]/.test ( "eeeeefffff" ) );//false
console.log ( /[abc]/.test ( "eaeeffffff" ) );//true
console.log ( /[abc]/.test ( "ebeeeffffff" ) );//true
2、反向类(负向类):^
// 反向类意思是不属于某类的内容
/[^abc]/
// 含意是,不是字符a或b或c的内容
// 只要有任何一个字符不是a或者b或者c,就满足条件
console.log ( /[^abc]/.test ( "1abacbc" ) );//true
console.log ( /[^abc]/.test ( "aaabbbcccc" ) );//false
console.log ( /[^abc]/.test ( "aaabbbcccce" ) );//true
3、范围类: -
在实际开发中,如果我们需要匹配所有的数字, 可以写[0123456789]
: 含义是,有任何数字的内容。如果这样写,表达式就很冗余,假如我要匹配字母,那就要写 [abcdefg…xyz],非常麻烦。
那么如何解决呢?可以使用范围类 -
。
[0-9] : 含义是, 0-9之间的任意字符
[a-z]: 含义是,a-z之间的任意字符
[A-Z]:含义是,A-Z之间的任意字符
console