1、什么是正则表达式
- 正则表达式可以用来匹配字符串,通过正则表达式,可以实现字符串的截取、按规则替换、验证字符串的内容等
2、正则表达式的语法
语法 | 作用 |
---|
^ | 开头 |
$ | 结尾 |
[] | 范围 |
{} | 位数 |
\w | 范围:数字字母(包大写)和下划线 |
\d | 范围:[0-9] |
\s | 范围:空格换行 |
. | 范围:只要不是null即可 |
+ | 位数:1-多位 |
? | 位数:0-1位 |
\ | 转义(特殊符号) |
3、[]
:指定范围,//
:表示正规
var username = 'jasmine';
var reg = /[a-z]/;
var result = reg.test(username);
console.log(result);
4、^
:开头、$
:结尾,规定开头范围[a-z],只能匹配一位
var username = 'j';
var reg = /^[a-z]$/;
var result = reg.exec(username);
console.log(result);
5、{}
:位数,{2}
:范围只能匹配两位
var username = 'ja';
var reg = /^[a-z]{2}$/;
var result = reg.exec(username);
console.log(result);
6、[]
:范围a-z,{5-8}
:位数只能匹配5-8位
var username = 'jasmine';
var reg = /^[a-z]{5,8}$/;
var result = reg.exec(username);
console.log(result);
7、[a-z0-9]
:范围可以写字母数字
var username = 'jasmine123';
var reg = /^[a-z0-9]{5,10}$/;
var result = reg.exec(username);
console.log(result);
8、[a-z0-9A-Z]
:可以写字母数字(包大写)
var username = 'Jasmine123';
var reg = /^[a-z0-9A-Z]{5,10}$/;
var result = reg.exec(username);
console.log(result);
9、[a-z0-9A-Z_]
:可以写字母数字(包大写)和下划线
var username = 'jasmine_123';
var reg = /^[a-z0-9A-Z_]{1,15}$/;
var result = reg.exec(username);
console.log(result);
10、用\w
取代范围[a-z0-9A-Z_],字母数字(包大写)和下划线
var username = 'Jasmine_123';
var reg = /^\w{1,15}$/;
var result = reg.exec(username);
console.log(result);
11、\d
:数字,范围[0-9]
var username = '123';
var reg = /^\d+$/;
var result = reg.exec(username);
console.log(result);
12、\s
:空格换行
var username = ' ';
var reg = /^\s+$/;
var result = reg.exec(username);
console.log(result);
13、?
:位数0-1位
var username = '1';
var reg = /^\d?$/;
var result = reg.exec(username);
console.log(result);
14、.
:范围只要不是null即可
var username = 'jasmine';
var reg = /^.+$/;
var result = reg.exec(username);
console.log(result);
15、\
:转义(特殊符号)
var username = 'jasmine+';
var reg = /^\w{1,15}\+$/;
var result = reg.exec(username);
console.log(result);
16、校验邮箱
var email = 'jasmine_512@qq.com';
var reg = /^\w{5,12}@qq\.com$/;
var result = reg.test(email);
if (result) {
console.log('校验成功')
} else {
console.log('校验失败')
}
17、替换字母为空,g
为全局匹配,没有g
就匹配一个字母
var str = '2132fsdfsdfsf';
var reg = /[a-zA-Z]/g;
var result = str.replace(reg, "");
console.log(result);
18、截取字符串,()
:实现分组
var data = '2020-02-12';
var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
var result = reg.exec(data);
console.log(result[1] + '年' + result[2] + '月' + result[3] + '日');