JavaScript正则表达式笔记

正则表达式

英文全称:regular expression(正则表达式)  简称:RegExp

正则表达式是用来处理字符串的规则

它只能用来处理字符串

它是一个规则:可以验证字符串是否符合某个规则

(例如:验证这个字符串  "2020扬帆起航"  中是否包含数字)

也可以把字符串中符合规则的内容捕获到(通过正则对象的方法:exec 或者字符串的原型方法:match...)

 

编写正则表达式

创建正则的方式有两种

 

正则表达式由两部分组成

    元字符

    修饰符

常用的元字符

1.量词元字符:设置出现的次数

*         零到多次

+         一到多次

?         零次或一次

{n}       出现n次

{n,}      出现n到多次

{n,m}   出现n到m次

2.特殊元字符:单个或者组合在一起代表特殊的含义

\         转义字符(普通->特殊->普通)

.         除了\n(换行符)以外的任意字符

^        以哪一个元字符作为开始

$        以哪一个元字符作为结束

\n       换行符

\d       0-9之间的一个数字

\D       非数字(大写和小写的意思是相反的)

\w       数字、字母、下划线中的任意一个字符

\s        一个空白字符(包含空格、制表符、换页符等)

\t         一个制表符(一个tab键:四个空格)

\b        匹配一个单词边界

x|y       x或者y中的一个字符

[xyz]    x或者y或者z中的一个字符

[^xy]    除了x/y以外的任意字符

[a-z]    指定a-z这个范围中的任意字符 [0-9a-zA-Z] === \w

[^a-z]   上一个的取反'非'

()         正则中的分组符号

(?:)      只匹配不捕获

(?=)     正向预查

(?!)      负向预查

3.普通元字符:代表本身含义的

/zhanchujin/   此正则匹配的就是"zhanchujin"这些字母

正则表达式常用的修饰符:img

i       ignoreCase(忽略)    忽略单词大小写匹配

m     multiline(多行)   可以进行多行匹配

g      global(全局)   全局匹配

元字符详细解析

^ $

 

\ 转义符

 

x|y 

 

[]

 

常用的正则表达式

1.验证是否为有效数字

 

2.验证密码

 

3.验证真实姓名

 

4.验证邮箱

 

5.身份证号码

 

正则两种创建方式的区别

 

正则的捕获

实现正则捕获的方法

正则RegExp.prototype上的方法

    exec

    test

字符串String.prototype上支持正则表达式处理的方法

    replace

    match

    splite

    ......

 

懒惰性的解决办法

 
 
 
 

正则的分组捕获

 
 
 
 
 

正则捕获的贪婪性

 

问号在正则中的五大作用

        问号左边是非量词元字符:本身代表量词元字符,出现零到一次

        问号左边是量词元字符:取消捕获时候的贪婪性

        (?:)只匹配不捕获

        (?=)正向预查

        (?!)负向预查

其他正则捕获的方法

1.test也能捕获(本意是匹配)

 

2.replace 字符串中实现替换的方法(一般都是伴随正则一起使用的)

 
 

案例:把时间字符串进行处理

 
 

单词首字母大写

 

验证一个字符串中哪个字母出现的次数最多,多少次?

 
 
 

字符串原型对象上封装几个方法

    - 时间字符串处理

    - 获取URL地址问号后面的参数信息(可能也包含HASH值)

    - 实现大数字的千分符处理

 

猜你喜欢

转载自www.cnblogs.com/zhanchujin/p/12804737.html