//第一个参数:正则表达式 第二个参数:匹配模式//(i:忽略大小写 g:全局匹配)
let reg =newRegExp('a','i');
let str ='sdAdsd';//用test检查字符串str是否满足正则表达式的要求
console.log(reg.test(str));//结果为ture
//{}包围量词//a{4} 意思是a连着出现4次//(ab){1,3} 意思是ab连在一起出现1~3次都可以//检查是否有三个a连续出现
let str1 ='asdsaaaav';
let reg1 =/a{3}/;
console.log(reg1.test(str1));//结果为true//检查是否有1~3个bv连续出现
let str2 ='sdbv';
let reg2 =/(bv){1,3}/;
console.log(reg2.test(str2));//结果为true
以某单词结束或开始
//^a表示以a开头,如想以ab开头则要^(ab)//b$表示以b结尾//检查是否有字符串是否以ab开始,中间是sv,且以b结束
let str3 ='absvsvb';
let reg3 =/^(ab)svb$/;
console.log(reg3.test(str3));//结果为false
正则表达式中的转义
//字符串和正则表达式中表示'.'需要'\.'//表示'\'需要'\\'
let str1 ='aas\.dasd';
let reg1 =/\./;
console.log(str1);//结果为aas.dasd
console.log(reg1.test(str1));//结果为true
let str2 ='ghkibhg\\g';
let reg2 =/\\/;
console.log(str2);//结果是ghkibhg\g
console.log(reg2.test(str2));//结果是true//如果用构造函数创建正则表达式,也需要注意这一点
let reg3 =newRegExp('a\\a');
console.log(reg3);//结果为/a\a/
//其他转义字符//'\w':大小写字母、数字、下划线 (可用word记忆)//'\W': 除了[A-Za-z0-9_]以外的东西
let reg4 =/\w/;
let str4 ='#$%^';
console.log(reg4.test(str4));//结果为false
reg4 =/\W/;
console.log(reg4.test(str4));//结果为true//'\d':数字 (可用digit记忆)//'\D':除了数字之外//'\s':空格 (可用space记忆)//'\D':除了空格之外//'\b':单词边界 (可用border记忆)//'\B':除了单词边界
let str5 ='hello children';
let reg5 =/\bchild\b/;
console.log(reg5.test(str5));//false
let str6 =' he llo ';//想去掉左右多余的空格但是不去掉中间的空格
console.log(str6.replace(/\s*/g,''));//所有的空格都去掉了(不加g去掉开头的就停了)
console.log(str6.replace(/^\s*|\s*$/g,''));
String中与正则表达式相关的语法
//search() 查找是否存在某字符//传入一个字符或者正则表达式,返回第一个匹配的字符的起始索引
let str1 ='a1c aec afc';
let res1 = str1.search(/a[a-z]c/);
console.log(res1);//4
//match() 返回符合条件的字符//传入一个字符或者正则表达式,返回第一个匹配的字符;如模式为全局匹配,会返回所有结果组成的数组
let str2 ='abc hello aEc';
let res2 = str2.match(/a[a-z]c/ig);
console.log(res2 instanceofArray);//true
console.log(res2);//[ 'abc', 'aEc' ]
//replace() 替换//传入两个字符,其中第一个可以是正则表达式,返回替换后的字符串;如模式为全局匹配,替换all满足条件的
let str3 ='1a2b3c4d5E6';//如第二个参数为空串,则被替换后的新字符串为空串
let res3 = str3.replace(/[a-z]/ig,'');
console.log(res3);//123456
//split(),拆分字符串,返回一个数组
let str4 ='1a2b3c4e5F6';
let res4 = str4.split(/[a-z]/i);
console.log(res4);//[ '1', '2', '3', '4', '5', '6' ]