(function() {//#region 定义正则表达式// const reg = /前端/g;// ------------test-------------// const res = reg.test("学java,找黑马");// console.log(res)// ------------exec--------------// const res = reg.exec("学好前端,找黑马");// console.log(res);// ------------replace--------------// const str = "学前端,找黑马";// const res = str.replace(reg, "java");// console.log(res);// ------------match--------------// const str = "学前端,找黑马,前端就业前景好";// const res = str.match(reg);// console.log(res);//#endregion//#region 元字符// *:表示0次或多次// const reg = /^a*$/;// console.log(reg.test("a"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("abbbb "))// +:表示1次或多次// const reg = /^a+$/;// console.log(reg.test("a"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("abbbb "))// ?:表示0次或1次// const reg = /^a?$/;// console.log(reg.test("a"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("abbbb "))// {n}:表示只有n次// const reg = /^a{3}$/;// console.log(reg.test("aaa"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("abbbb "))// {n,}:表示大于等于n次// const reg = /^a{3,}$/;// console.log(reg.test("aaa"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("abbbb "))// {n,m}:n-m次// const reg = /^a{3,5}$/;// console.log(reg.test("aaa"))// console.log(reg.test(""))// console.log(reg.test("aaaaaa"))// console.log(reg.test("aaaa"))//#endregion//#region 元字符-字符类//[]// const reg = /[abc]/; //匹配abc中的任意一个// const res = reg.test('abc'); //true// console.log(res)// ^取反// const reg = /[^0-9]/;// console.log(reg.test("aaa"));// console.log(reg.test("111"));// console.log(reg.test("aa34a"));//#endregion// \d 数字等价[0-9]/**\d 一位数字*\d{2} 2位数字\d{2,4} 2-4位数字\d{2,} 大于两位的数字\d+ 等价于\d{1,}\d* 等价于\d{0,}\d? 等价于\d{0,1}*/// const reg1 = /^\d{2,}$/// console.log(reg1.test('1'))// 校验手机号/座机号// const reg = /^1\d{10}$/;// console.log(reg.test('18386223456'))// 邮箱验证/**[0-9a-z_] 可以是0-9的数字,也可以是a-z的字母,也可以是_,-代表区间[ABCD1234.] 可以是ABCD1234.其中的任意一项,在中括号中。就是.的意思[^.]当^出现在中括号里的时候,表示取反,这句的意思是 除了。以外的**/// const reg1 = /^[0-9a-z_]{2,20}@[a-z0-9]{1,10}[.a-z0-9]+[^.]+$/i// console.log(reg1.test('245094530@163.com.cn'))// 正则当中的简写语法/**\s 空白符包括换行\S 非空白,与上面相反\n 换行\w[a-zA-Z0-9_]\W [^a-zA-Z0-9_]任意字符(除了\n\r)*/// 身份证号验证// const reg1 = /^(\d{15}|\d{17}[0-9X]{1})$/i// console.log(reg1.test('32099919900101321X'))// 数字转千分位// const money = 99999999// console.log(money.toLocaleString())// 校验名字必须位中文// const reg1 = /^[\u4e00-\u9fa5]{2,5}$/// console.log(reg1.test("中文345454"))// 字符串模板// const text = '{name}说,今天天气{desc}'// const obj = {// name: '张三',// desc: '真好'// }// console.log(text.replace(/\{(.*?)\}/g, (result, group1) => {// return obj[group1]// }))//去掉多余的空格// const text = ' 你 好 ';// console.log('---' + text.replace(/\s/g, '') + '---')// 数据格式化const text = `xxxx;张三:15555555555,2222zddd333;xxxx;xxxx;李四:13333333333,2222zddd333;xxxx`const arr = []text.replace(/;([\u4e00-\u9fa5]+):(1\d{10}),([0-9a-z]+);/g, (result, group1, group2, group3) => {console.log(group1)arr.push({name: group1,phone: group2,orderId: group3})})console.log(arr)})()