<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var reg = /abc/;
var str = "1abc3abc"
//正则的方法
//只要含有匹配正则的字串,返回true
console.log(reg.test(str));
//返回符合条件的第一个字串
console.log(reg.exec(str));
//字符串提供的方法
//返回符合体哦案件的第一个字符串(没有全局匹配)
console.log(str.match(reg));
//返回符合条件的第一个字串下标
console.log(str.search(reg));
/* 修饰符:
i:忽略大小写
g:全局匹配,返回所有符合条件
m:多行匹配,前提要加上全局匹配
*/
var reg2=/AbC/ig;
var str2="1abc2ABC";
console.log(str2.match(reg2));
//跟着游标检索
console.log(reg2.lastIndex);//0
console.log(reg2.exec(str2));//abc
console.log(reg2.lastIndex);//4
console.log(reg2.exec(str2));//ABC
console.log(reg2.lastIndex);//8
console.log(reg2.exec(str2));//null
//^开头 以abc开头
var reg3=/^abc/gm;
var str3="abc\nABC";
console.log(str3.match(reg3));
</script>
</body>
</html>
预查与贪婪匹配
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var str="1sad5f2sa";
//贪婪匹配:能匹配多,就不匹配少
var reg=/\w{2,3}/g;
console.log(str.match(reg));
//非贪婪匹配:能匹配少,就不匹配多
var reg=/\w{2,3}?/g;
console.log(str.match(reg));
//正向预查
//正向正预查
var str="a13sab26q"
var reg=/\d{2}(?=s)/g;//后面是s的俩位数字
console.log(str.match(reg));//13
//正向反预查
var reg=/\d{2}(?!s)/g;//返回后面不是s的俩位数字
console.log(str.match(reg));//26
//反向预查
//反向正预查
var str="as15qab27"
var reg=/(?<=s)\d{2}/g;//前面是s的俩位数字
console.log(str.match(reg));
var reg=/(?<!s)\d{2}/g;//前面不是s的俩位数字
console.log(str.match(reg));
//字母汉字数字组合6-20位
var reg8 =/^(?!([a-zA-Z]+|\d+|[\u4E00-\u9FA5]+)$)[\u4E00-\u9FA5a-zA-Z\d]{6,20}$/;
//一切字符
var reg=/\w|\W/g;
var reg=/\d|\D/g;
//匹配"AABB";
var str="aaqw11dd";
//反向应用:\数字对应前面相应的括号
var reg=/(\d)\1([a-z])\2/g;
var reg2=/\d[a-z]/g;
console.log(str.match(reg));//["11dd"]
console.log(str.match(reg2));
</script>
</body>
</html>