正则匹配规则
给大家分享一下正则匹配规则,有看不懂的地方,可以给我留言哦
以下哪个是正则对象的方法
A.test(√)
B.match()
C.replace()
D.split()
1.字面量--眼见为实
var str = "dalkdahjdkajkd";
var reg = /789/;
var result = str.match(reg);
console.log(result);
2.元字符
2.1 +号
var str = "dakdhak+adad+adada";
var reg = /\+/;
var result = reg.test(str);
console.log(result);
2.2 ^(托字符) 也需要转义
var str = "dhehaklo^kdjehkj^de^";
var reg = /\^/g;
var result = str.match(reg);
console.log(result);
2.3 除了+和^以下字符都是元字符,如果想要使用它们的字面意义,也都需要进行转义(\);
正则中需要用反斜杠转义的字符: ^、.、[、]、$、(、)、|、*、+、?、{、}、\
3. ^---匹配字符串的开始位置
var str = "dladhadhajd";
var reg = /^dl/;
var result = reg.test(str);
console.log(result);
4.$ ---匹配字符串结尾的位置
str = "abcdakdakdhak";
var reg = /ak$/;
var result = str.match(reg);
console.log(result);
练习:
var str = "abc";
var reg = /^abc$/; //只能匹配abc
var result = reg.test(str);
console.log(result);
5. .字符:匹配除回车\r 换行\n 行分隔符\u2028 段分隔符\u2029 以外的所有字符
var str = "akdhuyjf";
var reg = /h.y/;
var result = str.match(reg);
console.log(result);
练习:
var str = "abhh";
var reg = /a...$/;
var result = str.match(reg);
console.log(result);
6. | 竖线 表示或的意思
var str = "aabbcc";
var reg = /d|aa/;
var result = reg.test(str);
console.log(result);
7.重复问题
用{}来表示
{m,n} 出现m-n次
{m,}至少出现m次
{n}正好就出现n次
var str = "agdgkduphydadakdhkhpdada";
var reg = /a.{0,}p/;
var result = str.match(reg);
console.log(result);
练习
var str = "dadlhajkldhakjd";
var reg = /^d.{0,}ak.{1}d$/;
var result = str.match(reg);
console.log(result);
8.? --重复类 相当于{0,1}
var str = "abcgdhac";
var reg = /a.?c/; //匹配ac 或者是a.c
var result = str.match(reg);
console.log(result);
9.* 重复 相当于{0,}
var str = "hakdalahdaiud";
var reg = /ha*l/;
var result = str.match(reg);
console.log(result);
10. +重复 相当于{1,0};
var str = "18600017464";
var reg = /^1860+17464$/;
var result = reg.test(str);
console.log(result); //true
11. [] 选择 选择[]里面的任意一个字符
var str = "woshihaoren";
var reg = /w[12ado]sh/;
var result = str.match(reg);
console.log(result);
12. 连字符 -主要用于连续的字符
var str = "a394823398923z;"
var reg = /a[0-9]+z/;
var result = reg.test(str);
console.log(result);
13. ^托字符 另一种用法
前面讲过:^表示匹配开始位置
如果^字符用在[]里面,表示除了[]里面的其他字符
例如 [^abc] 表示除了abc以外的任何字符
var str = "aycdefk";
var reg = /a[^bcdefh]c/;
var result = str.match(reg);
console.log(result);
14./g 默认正则匹配到第一项满足条件之后就结束匹配,/g可以全局匹配
var str = "dmadabdmadbada";
var reg = /a/g;
var result = str.match(reg);
console.log(result);
15. /i 正则默认是区分大小的,对大小写敏感,/i可以让正则在匹配的时候不区分大小写
var str = "AKJDdbakdA"
var reg = /a/i;
var result = str.match(reg);
console.log(result);
16. 一些常见的简写形式
16.1 \d 代表匹配数字 [0-9]
var str = "19600038398";
var reg = /^1\d{10}$/;
var result = reg.test(str);
console.log(result);
16.2 \D 除了数字以外的字符 [^0-9]
16.3 \w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
var str = "GaGiaoMin_25_nan";
var reg = /G\w*/;
var result = str.match(reg);
console.log(result);
16.4 \W 除所有字母,数字和下划线以外的字符,相当于[^A-Za-z0-9_]
16.5 \s 匹配空格,包括制表符、空格符、断行符等
var str = "ga la min";
var reg = /ga\sla/;
var result = reg.test(str);
console.log(result);
16.6 \S 匹配非空格的字符
16.7 \b 匹配单词的边界
var str = "hello world";
var reg = /\bhello/;
var result = str.match(reg);
console.log(result);
16.8 \B 匹配非单词边界
var str = "sahfaebfmahfbshj";
var reg = /\Bhj/;
var result = str.match(reg);
console.log(result);
17. \n 回车键 --- 字符串里面加\n,用代码模拟回车键
\r 表示换行
\t 匹配制表符
\f 换页符
var str = "wo zhen de \fshi ge hao ren";
alert(str);
var reg = /\f/;
var result = reg.test(str);
console.log(result);
18.分组选择
/(12)/ --- 12作为整体
var str = "1h2j3j4n5j";
var reg = /[(12)4]/g;
var result = reg.test(str);
console.log(result);
19 汉字的匹配
var str = "我 jiao gala";
var reg = /[\u4e00-\u9fa5]/g;
var result = str.match(reg);
console.log(result);