正则匹配规则

给大家分享一下正则匹配规则,有看不懂的地方,可以给我留言哦

 

以下哪个是正则对象的方法

 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.   .字符:匹配除回车 换行 行分隔符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 = /^1d{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 = /Gw*/;

 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 = /gasla/;

var result = reg.test(str);

console.log(result);

 

16.6  S 匹配非空格的字符

 

16.7   匹配单词的边界

var str = "hello world";

var reg = /hello/;

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. 回车键 --- 字符串里面加 ,用代码模拟回车键

  表示换行  

  匹配制表符

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

 

原文地址:https://www.cnblogs.com/galal/p/6024533.html