发表于: 2019-11-08 23:15:37

0 1078


今日完成的事

今天学习了正则表达式

所谓正则就是一个规则,用来处理字符串的规则,正则只能用来处理字符串,处理一般包含2个方面,1验证当前字符串是不是符合某个规则(正则的匹配),2把一个字符串中符合规则的字符串获取到(正则的捕获),学习正则就是学习如何编写规则。

正则的匹配方法testexec

每一个正则都是由元字符和修饰符2部分组成

创建正则的两种方式

1.       字面量方式例如let  reg1=/xxx/g

2.       构造函数方式  let  reg2 = new RegExpxxxg

正则元字符和修饰符:2个斜杠包起来的都是元字符,两个斜杠以外的都是修饰符

量词元字符

*出现零到多次

?出现零到一次

{n}出现n

{n}出现n到多次

{nm}出现nm次。

普通元字符

只要在正则中出现的元字符(基于字面量创建),除了特殊和有量词意义的以外,其余都是普通元字符

特殊元字符【】

中括号的一些细节,例如[xyz] [^xyz] [a-z] [^a-z]

1.       中括号中出现的元字符一般都是代表本身含义的。

2.       中括号里面出现的两位数并不是两位数而是2个数字中的任意一个.比如

                                             

let reg =/^[12-89]$/;这个正则代表是1或者2-8或者9都可以

特殊元字符()

小括号具有分组的作用

比如let reg =/^18|19$/;这个正则就是代表以18开头,或者以19结尾,或者以1开头以9结束中间的数为8或者1,这会显得特别乱,所以如果只想要以18开头,以19结尾的效果要加一个小括号let reg =/^(18|19)$/;这样18|19就代表一个整体了。

正则的分组引用

例如let reg =/^([a-z])([a-z])\2\1$/;

正则中出现\1代表和第一个分组出现一模一样的内容

 

常用的正则表达式写法

1.  有效数字

/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;

2.  手机号

/^1\d{10}$/

3.  中文汉字

[\u4E00-\u9FA5]

4.       中文姓名     

/^[\u4E00-\u9FA5]+$/

5.  邮箱

/^\w+([-.]\w+)*@[a-zA-Z0-9]+([-.][A-Za-z0-9]+)*(\.[a-zA-Z0-9]+)$/;

6.       年龄18-65

/(1[8-9])|([2-5]\d)|(6[0-5])/

 

正则的捕获:把一个字符串当中和正则匹配的部分获取到

基于exec捕获如果当前正则和字符串不匹配,则捕获的结果为null

如果匹配则返回来一个数组

0:位正则捕获的内容

Index:正则捕获的起始索引

Input:原始操作的字符串

明天计划的事

    继续学习正则表达式

遇到的问题

刚学正则,还有很多不懂得地方

收获

初步了解了正则表达式



返回列表 返回列表
评论

    分享到