多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 正则提取 <br> >[info]String.math(RegExp),在string字符串中查找跟正则表达式匹配的文本,**成功返回是个数组**,**不成功返回的是null  ** <br> ### 1.提取数字 ```javascript var str="中国移动:10086,中国联通:10010,中国电信:10000"; //在str中查找跟正则表达式匹配的文本,成功返回是个数组,不成功返回的是null // 加了修饰符g,自然是在全局范围内查找满足正则表达式的文本 var array = str.match(/\d+/g);//匹配成功返回值是数组 console.log(array); ``` ![](https://img.kancloud.cn/a0/ed/a0ed4da9515e7a97046ece82867f00d8_248x134.png) <br> ### 2.提取邮箱 ```javascript var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com..."; var array = str.match(/\w+@\w+\.\w+(\.\w+)?/g); console.log(array); ``` ![](https://img.kancloud.cn/91/24/9124c719beb0c6361d25879a74cb7b2a_464x201.png) <br> ### 3.分组提取 RegExp 是javascript中的一个内置对象。为正则表达式。 RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串 以此类推,下一个为RegExp.$2 RegExp.$3 RegExp.$... ***** #### 3.1提取日期 ```javascript //提取日期中的年部分 $1年 $2月 $3日 var str = '2020-11-12'; // 正则表达式中的()作为分组来使用,获取分组匹配到的结果用Regex.$1 $2 $3....来获取 var date = str.match(/(\d{4})[-](\d{2})[-](\d{2})/);//返回值是数组 console.log(date); console.log(RegExp.$1); //年 console.log(RegExp.$2);//月 console.log(RegExp.$3);//日 ``` ![](https://img.kancloud.cn/66/92/66929fefd944f3195af2aca8a5874285_310x298.png) #### 3.2提取邮箱 ```javascript var email = "xuege@163.com"; email.match(/(^[0-9a-zA-Z_.-]+)[@]([0-9a-zA-Z_.-]+)(([.]com|cn+){1,2}$)/); console.log(RegExp.$1);//用户名 console.log(RegExp.$2);// 163 console.log(RegExp.$3);// .com ```