正则匹配规则

//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);

原文地址:https://www.cnblogs.com/ninetyfive/p/6025940.html