正则表达式的使用

正则表达式:又叫规则表达式,按照一定规则进行的组成的一个表达式,这个表达式的作用是匹配字符串的
正则表达式的作用:匹配字符串,在大多数编程语言中都可以进行使用
正则表达式的组成:是由元字符或者是限定字符组成的一个式子

## 元字符:

\n是换行符
**. 表示的是:除了\n以外的任意一个字符**  
[]:表示的是范围,[0-9]表示的是0-9之间的任意一个数字
[1-7]表示的是17之间的任意一个数字
[1][0-9][0-9]代表100199之间的任意一个数字
[a-z]表示的是所有小写字母的任意的一个
[A-Z]表示的是所有大写之间的一个字母
[a-zA-Z]表示的是所有字母的任意一个
[]:另一个函数,是把正则表达式的元字符的意义干掉  [.]就是一个.
| 代表的是要么  [0-9]|[a-z]代表要么是一个数字,要么是小写字母
()进行分组提升优先级,,从最左边开始进行计算
* :表示的是前面的表达式出现了0次或者多次  [a-z][0-9]* 代表的是小写字母中的任意一个,后面是要么没有数字的,要么是多个数字的

+ :代表是前面的表达式出现了一次或者多次, [a-z][9]+ 代表小写字母一个,后面最少一个9,或者多个9
?  表示的是前面的表达式出现了0次或者是1次,最少0次,最多一次
[4][a-z]?  代表的是数字出现一次,小写字母出现0次或者1?   另外一个含义阻止贪婪模式

限定符:限定前面表达式出现的次数
{0,} 表示的是前面的表达式出现了0次或者多次 和*一样
{1,}表示的是出现1次或者多次
{5,10}  表达式表示的是前面的表达式出现了5次到10{4}表达式出现了4{,10} ===这种是错误的

^ 表示的是以什么开始,或者是取反  ^[0-9]以数字开头
[^0-9]取反,非数字
[^a-z]取反,非小写字母
[^0-9a-zA-Z] 取特殊符号
$  表示的是以什么结束   [0-9][a-z]$ 表示的是小写字母结束
\d 数字中的任意一个,相当于一个0-9
\D 非数字中的任意一个,相当是字母或特殊符号
\s 空白符中的一个 
\S 非空白符 
\w 非特殊符号 相当于数字字母
\W 特殊符号
\b 单词的边界
\t 水平制表键 tab键
\  代表转义


//写正则表达式 ,根据字符串来写正则表达式进行匹配
//经验:找规律,不要追求完美
身份证的正则表达式  15位或18位
([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX])  前面是第一位为0-9的数字,后面0-9的数字可以出现14,就相当于15位
([1-9][0-9]{16}[0-9xX]) 前面的数字只出现一次,后面的数字出现16次,最后一次的出现一次,要有数字或者是xX的字母

([1-9][0-9]{14})|([0-9]{2}[0-9xX])? 代表的是前面的数字已经出现15位了,
后面加了问号,表示问号前面的表达式出现0次或者1次,出现即为18位,不出现即为15位 

练习:1 座机号码的正则表达式
010-19876754
0431-87123490
正则表达式的写法  [0-9]{3,4}[-][0-9]{8}  代表的是前面的数字可以是出现3次或出现4次,中间加以-,后面的数字可以出现8次
第二种写法 \d{3,4}[-]\d{8}

2.qq的号码的正则表达式写法
[1-9]{5,11}
[^0]\d{5,11}

3.手机号码的正则表达式的写法
(^[1][358][0-9][0-9]{8})|([1][4][37][0-9]{8})|([1][7][01367][0-9]{8})
\d{11}

4.邮箱的正则表达式,必须要记住
[0-9a-zA-Z_.-]+  代表的数字字母大写字母下划线点都有,出现了一次或者多次
2960415266@qq.com
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}
[0-9a-zA-Z_.-]+代表前面的数字字母都可以出现 比如2960415266  3232xxrer 
[@][0-9a-zA-Z_.-]+  代表可以出现  qq,weixin,中文加英文等的前缀
([.][a-zA-Z]+){1,2}  以点进行开头,但是只能是小写字母或者大写字母,如果是一级邮箱,就出现一次,如果是二级邮箱就出现两次

/*
*/
创建正则表达式对象 正则表达式的作用--匹配字符串的

1,通过构造函数创建对象
var reg = new RegExp(/\d{5}/);//创建了一个对象,里面匹配出现5个数字的整数
var str = '我的电话是10086';
var flag = reg.test(str);
console.log(flag);//打印的结果位true


2.通过字面量的方式创建对象

  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值