js day11 正则

l正则的概念

n正则表达式(regular expression)是一个描述字符规则的对象。我们可以通过RegExp 类(构造函数)创建正则表达式,同时String 和 RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的方法。

n前端正则表达式主要用来验证客户端的输入数据,因为客户端验证,可以提供用户体验和节约大量的服务器端的系统资源。

l创建正则的两种方式

n使用RegExp这个对象

var reg = new RegExp('study', 'ig');

第一个参数就是我们的模式字符串(变量)

第二个参数可选,模式修饰符

i 表示忽略大小写

g 表示全局匹配

m 表示多行匹配

n还可以用字面量方式直接声明(如果正则表达式中有变量则不可用此方式);

var reg = /study/ig;                                                                                                                       

lRegExp下面测试正则表达式的两个方法

ntest(str)方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回 true,不存在则返回 false。

nexec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行匹配检索。如果它没有找到任何匹配返回null,如果找到一个匹配,它将返回一个数组。

 

l可以配合正则使用的字符串方法

n使用 match 方法获取匹配内容,返回数组

n使用 search 来查找匹配数据,和全局没有关系,查找第一个匹配值的位置。(-1)

n使用 replace 替换匹配到的数据,2个参数:1代表正则,2代表用来替换的字符*****

n使用 split 拆分成字符串数组

lexec和match的区别:

n定义为非全局匹配时,exec和match执行的结果是一样

nexec与全局是否定义无关系,而match则于全局相关联

l获取控制

字符类:单个字符和数字

元字符/元符号 匹配情况

. 匹配除换行符外的任意字符

[a-z0-9] 匹配括号中的字符集中的任意一个字符(小写字母和数字)

[^a-z0-9] 匹配任意不在括号中的字符集中的字符

\d 匹配数字[0-9],中括号表示范围。

\D 匹配非数字,同[^0-9]相同

\w 匹配字母和数字及_

\W 匹配非字母和数字及_

字符类:空白字符

元字符/元符号 匹配情况

\b 匹配单词边界  \B(非单词边界)

b匹配的只是一个位置,这个位置的一侧是构成单词的字符,另一侧为非单词字符、字符串的开始或结束位置。“\b”是零宽度的。

\n 匹配换行符

\s 匹配空白字符、空格、制表符和换行符

\S 匹配非空白字符

字符类:锚字符

元字符/元符号 匹配情况

^ 行首匹配   以及   取反

$ 行尾匹配

字符类:重复字符

元字符/元符号 匹配情况

x? 匹配0个或1个x

x* 匹配0个或任意多个x

x+ 匹配至少一个x

(xyz)+ 匹配至少一个(xyz)

x{m,n} 匹配最少m个、最多n个x

字符类:替代字符

元字符/元符号 匹配情况

this|where|logo 匹配this或where或logo中任意一个

l正则的常见应用

1.邮政编码检测/邮件格式检测

2.手机号检测/身份证检测/qq号码检测

3.日期检测/中文检测

4.字符串过滤(敏感词过滤)

5.密码强度验证

6.字符串首尾去空格

l应用

1.查找和替换

2.输入一个字符串,中文字符占两个长度,其他的占一个长度,统计总的字符长度。

3.利用正则去重和统计字符个数

l综合应用

1.掌握正则的封装

2.掌握综合表单验证

 1.

请输入手机号码:

2.  

3.

4.

5.

用户注册

用户姓名:

用户密码:

电子邮箱:

6.

7.

8.

请输入查找的字符:

【环球网报道 记者 张飞扬】俄罗斯驻阿富汗特使周一(12日)透露,塔利班和美国除了在卡塔尔公开讨论如何结束阿富汗战争外,两者还“秘密举行了10轮会谈”,美媒12日披露了这一消息。

 

报道称,俄罗斯驻阿富汗特使扎米尔·卡布洛夫说:“我们被告知他们(塔利班)与美国人进行了大约10次秘密磋商。这是一个正常的进程,我们愿意相信,一些国家试图在没有先决条件的情况下,促成塔利班和阿富汗政府坐上谈判桌。”

 

报道称,自7月以来,外界仅得知美国与塔利班代表在所谓的“多哈政治办公室”举行了两次会谈。最近一次是在上个月,新上任的美国阿富汗问题特使扎勒迈·哈利勒扎德率领美国代表团。

 

报道称,卡布洛夫还提到了上周五举行的“阿富汗问题国际大会”。他表示,在莫斯科举行的多边会议是一个“独特的”和广泛的国际论坛,塔利班代表17年来首次公开参加会议,与阿富汗官方代表团在会议桌上交换意见。

 

他强调,这次会议的目标不是寻求阿富汗交战各方之间的直接谈判,而是“朝着这个方向迈出温和的第一步”。

 

你可能感兴趣的:(js day11 正则)