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