码迷,mamicode.com
首页 > 其他好文 > 详细

彻底理解正则表达式

时间:2018-03-31 10:13:58      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:教育   条件   意义   次数   JD   邮箱   www   reg   声明   

正则表达式

一、声明有两种方式:

  1、内置对象创建, 2、字面量创建

 

二、正则表达式的组成

  由一些普通字符和元字符组成,普通字符就是字母和数字,元字符是具有特殊意义的字符

 

三、正则表达式五大内部类:(只要有一个字符满足条件,就是true)

(1)预定义类:(通配,数字字符,单词字符,空白字符)

 技术分享图片

 

(2)简单内部类

/sjdfi/ 必须是完整的包含指定字符,可以多,但不能少

/[suej]/  只要满足中括号中的一个就可以

 

(3)负向类

/[^abc]/ 取反,^符号在[]中,用来检测的字符串数量不够或者刚刚好满足其中一个字符,返回false。超出规定数量或者没有一个与指定字符相符,就是满足条件,返回true.

 

(4)范围类

规定一个范围进行检测

[a-z] [A-Z]  只要检测的值一个满足给定范围,返回true

 

(5)组合类

[a-zA-Z0-9$%*] 多个判定条件组合在一起

 

四、正则边界

/^abc/  ^ 以给定字符开头 (注意:在[]中括号中是取反,不在中括号中是以什么开头)

/zfg$/  $ 以给定字符结尾,

 

^和$在一起使用,表示精确匹配,必须是这个[^abc$];

/^\w/  表示以字母,数字或者下划线开头的字符

/^\w$/ 当有了前后的边界,只能匹配单个字符,要想匹配多个,就要用到量词。

 

五、正则量词(量词使用在前后都有边界的情况下,并且一个量词跟一个标准)

(1)* >=0  模板给定的字符可以出现一次或者多次,但不能出现其他字符

Var reg = /^a*$/;   a可以出现0次或者多次,不能出现其他任何字符

/^abc*$/ 这种情况,可以出现多次c,但ab只能出现一次,且出现顺序是 abccc,不能调换。要想每个字符都可以出现多次,那么每个字符后面都要跟上量词,并且顺序也不能换

/^a*b+c?$/  aaabbbbc;  true;  abcabc; false;

 

(2)+  >=1  给定字符至少出现一次

/^a+$/

 

(3)? 0||1  给定字符出现0次或者1次

/^z?$/; z只能出现0次或者1次

 

/^\w+$/;  可以出现多次同样的字母,数字,下划线

/^[abc]+$/;  可以多次出现[abc]中的任意一个字符,但不能超出abc这三个字符的范围

 

(4){} 大括号中的数字限定模板字符出现的个数

/^[abc]{2}$/; 可以出现模板中的任意两个字符

/^abc{2}$/;  规定必须完整的出现abc,并且c出现量词(一个量词跟一个标准,没有任何包裹的字母都可以看成一个判定标准,/abc/这种形式属于简单内部类)

 

(5){2,} 出现大于等于2次

/^\w{3,}$/;   出现字母,数字,下划线的次数大于等于三次

/^ab{4,}c{2,}d$/  必须以这个顺序依次出现,b的次数要大于等于4次,c的次数要大于等于2,d最后一次出现结尾。

 

(6){2,5}  出现2次到5次(包括)

/^[a-zA-Z]{2,5}$/  a-z,A-Z这个范围类的字符出现2-5次(大于等于2,小于等于5)

 

(7)| 只能用在简单内部类且不带任何包裹的判定添加上(可以加括号)

/^abc|def$/;   满足abc开头或者def结尾的都可以

 

六、正则实例

(1)匹配手机号  var reg = /^1[3458]\d{9}$/.

(2)匹配固定电话 var reg = /^(0\d{2}[\-]\d{8})|(0\d{3}[\-]\d{7})$/;

满足0开头,中间两位是0-9之间的数字,第三位是-(需要转义字符转义,否则即使[范围连接符]),最后8位是0-9的数字

(3)匹配qq号 var reg = /^[1-9][0-9]{4,10}$/

(4)匹配邮箱(注意,特殊字符需要转义)

var reg = /^[\w\-\.]+\@[\w]+\.[\w]{2,4}$/

 

参考资料: w3c  善知堂教育http://www.itszt.com/

彻底理解正则表达式

标签:教育   条件   意义   次数   JD   邮箱   www   reg   声明   

原文地址:https://www.cnblogs.com/zhouyanlife/p/8681079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!