//1.字面量 -- 眼见为实
// var str = 'sajkgdakgaksfgaksgtakuwgfjmaszgdfaksghdfasikld';
// var reg = /sa/;
// var res = str.match(reg);
// console.log(res);
//2.元字符
// 反斜杠 转义
//2.1 +号 需要转义
// var str = 'sajkgd+ksfg32aksgtaku56wgfjma-szgdf+34435aksghdfa2sikld';
// var reg = /+/;
// var res = str.match(reg);
// console.log(res);
//2.2 ^脱字符 也需要转义
// var str = 'sajkgd+ksf^g32aksgtaku56wgfjma-szgdf+344^35aksghdfa2sikld';
// var reg = /^/;
// var res = str.match(reg);
// console.log(res);
//2.3 除了+和^ 以下字符都是元字符 如果想使用其字面意义 需要转义
//正则中需要用反斜杠转义的字符:^、.、[、]、$、(、)、|、*、+、?、{、}、
//3.^ -- 匹配字符串的开始位置
// var str = 'aajkgd+ksf^g32aksgtaku56wgfjma-szgdf+344^35aksghdfa2sikld';
// var reg = /^a/;
// var res = reg.test(str);
// console.log(res);
//4.$ -- 匹配字符串的结尾位置
// var str = 'aajkgd+ksf^g32aksgtaku56wgfjma-szgdf+344^35aksghdfa2sikld';
// var reg = /a$/;
// var res = reg.test(str);
// console.log(res);
//5. .字符 -- 匹配除回车 换行 行分隔符u2028 段分隔符u2029以外的所有字符
// var str = 'akdhuyjf';
// var reg = /h..y/;
// var res = str.match(reg);
// console.log(res);
//6.|竖线 表示或
// var str = 'akdhuyjf';
// var reg = /h|b/;
// var res = reg.test(str);
// console.log(res);
//7.重复问题
// var str = 'aajkgd+ksf^g32aksgtaku56wgfjma-szgdf+344^35aksghdfa2sikldfafsfasfasgtuotygh';
// //用花括号{}表示
// //m和n为数字
// //{m,n}出现m-n次
// //{m,}至少出现m次
// //{,n}正好出现n次
// var reg = /a.{0,}h/;
// var res = str.match(reg);
// console.log(res);
//8. ? 重复 相当于{0,1}
//var str = 'akdhuyjfcdsfdsfdc';
//var reg = /a.?c/ //匹配ac或者是a.c
//9.* 重复 相当于{0,}
// var str = 'asdasdasawrgfvdxbgdfzoawkughakjdvbksajnfkljsagfkladsb';
// var reg = /as*l/;
// var res = str.match(reg);
// console.log(res); //null
// //10.+ 重复 相当于{1,}
// var str = '102488888888391084710';
// var reg = /10248+839/;
// var res = str.match(reg);
// console.log(res);
//11.[] 选择 选择中括号里面的任意一个字符
// var str = 'asdasdasawrgfvdxbgdfzoawkughakjdvbksajnfkljsagfkladsb';
// var reg = /das[12af]la/;
// var res = str.match(reg);
// console.log(res);
//12 连字符 - 主要用于连续的字符
// var str = 'sdas13356623517efaxfgz';
// var reg=/[s-z]/;
// var res = str.match(reg);
// console.log(res);
//13.脱字符 另一种用法
//前面讲过 ^表示匹配开始位置
// var str = 'abckefk';
// var reg=/a[^bcdefh]c/;
// var res = str.match(reg);
// console.log(res);
//非的意思 只要不是括号[]里的字符都不能匹配
//14. /g 默认正则匹配到第一项满足条件后就结束匹配,/g可以全局匹配
// var str = 'asaewafddfdsaDFFAFfafefsxgf';
// var reg = /a/g;
// var res = str.match(reg);
// console.log(res);
//15./i 正则默认是区分大小写的,对大小写敏感,加/i可以让其不区分大小写
// var str = 'aAaewafadAdsaAaFfafAf';
// var reg = /a/ig;
// var res = str.match(reg);
// console.log(res);
//16.一些常见的简写形式
//16.1 d 代表匹配数字[0-9]
// var str = '133566235171';
// var reg = /^1d{11}$/;
// var res = str.match(reg);
// console.log(res);
//16.2 D 除数字之外的[^0-9]
//16.3 w 匹配任意的字母 数字 和 下划线,相当于[a-zA-Z0-9_]
//16.4 W 匹配除了字母数字下划线之外的字符,相当于[^a-zA-Z0-9_]
//16.5 s 匹配空格 包括制表符 空格符 断行符等
//16.6 S 你说呢......
//16.7 匹配单词边界 放左边是前边界 放右边是后边界
// var str = 'hello world';
// var reg = /hello/;
// var res = str.match(reg);
// console.log(res);
//16.8 B 匹配非单词边界
// var str = 'hello world';
// var reg = /Bllo/;
// var res = str.match(reg);
// console.log(res);
//17. 匹配回车键 表示换行 匹配制表符(tab)
// var str = 'hello world';
// var reg = / /;
// var res = str.match(reg);
// console.log(res);
//18.分组选择 ()中的字符作为整体
// var str = 'dalasdawdfdadad';
// var reg = /^(d[a-z])*$/;
//19.汉字的匹配
// var str = 'sassd+ihas我jkfh是asfa你lsfh爸asl';
// var reg = /[u4e00-u9fa5]/;
// var res = reg.test(str);
// console.log(res);