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值)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。