一、test方法
var dateStr = '2020-01-01';
var dateReg = /^\d{4}-\d{2}-\d{2}$/;
console.log(dateReg.test(dateStr));//test方法用于验证是否是满足正则表达式格式
运行结果:
二、提取正则表达式
1. 正则对象.exec(要匹配的内容)
var qqStr = "小明:15778945869,小虎:15678645678,小红:13848956123";
var reg = /\d+/g;
do{
var content = reg.exec(qqStr);//返回了一个数组,索引第一个值就是匹配的内容
if(content){
console.log(content[0]);
}
}while(content)
//可以看出来content即使是在大括号的外面也依然可以使用
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l8Qg6SSi-1595001721789)(https://imgkr.cn-bj.ufileos.com/e8e4d78b-0ad0-4b83-bd3d-6a8f16eff6b5.png)]
2. 要匹配的内容.match(正则对象)
var qqStr = "小明:15778945869,小虎:15678645678,小红:13848956123";
var reg = /\d+/g;
var qqArr = qqStr.match(reg);
console.log(qqArr);//返回一个匹配所有结果的列表
运行结果:
3.分组匹配的结果
- 使用RegExp.$数字来进行提取分组表达式
var dateStr = '2020-01-01';
dateReg2 = /^(\d{4})-(\d{2})-(\d{2})$/;
if(dateReg2.test(dateStr)){
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);
}
显示结果:
4.替换
- 要匹配的对象.replace(正则对象,新字符)
var str2 = ' it like iy d ewd dew dd ';
console.log(str2.trim());//去除首尾空格
//但是我们想要取代所有的空格,那就要用正则表达式了
str3 = str2.replace(/\s/g,'*');//加上g就是非贪婪
str4 = str2.replace(/\s/,"*");
str5 = str2.replace(/\s*$/,"*");
console.log(str3);
console.log(str4);
console.log(str5);
显示结果:
5.分隔
var dateStr3 = "2020-11-12";
console.log(dateStr3.split("-"));//返回一个分割的列表
显示结果:
6.贪婪与非贪婪
- 使用?即可实现
var str6 = "aaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaa";
var res = str6.match(/a.*b/);//默认是贪婪模式
var res2 = str6.match(/a.*?b/)
console.log(res);
console.log(res2);
显示结果:
二、源码:
- D25_MethodOfMatch.html
- 地址:
https://github.com/ruigege66/JavaScript/blob/master/D25_MethodOfMatch.html
- 博客园:
https://www.cnblogs.com/ruigege0000/
- CSDN:
https://blog.csdn.net/weixin_44630050?t=1
- 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包