Javascript正则表达式

JavaScript正则

表达式语法

定义规则regular

const reg=/表达式/

校验内容test

reg.test('校验字符串')

由于由两个/斜杆包起来的正则是一个对象,我们可以直接这样写直接调用test函数校验,返回值为布尔值

image-20240705214341833

还有一个内置函数为exec返回一个数组,记录出现在第几个位置

image-20240705214912299

元字符—边界符—量词—字符类

元字符

特殊含义的字符,匹配26个字母使用[a-z]即可

边界符

以x开头^x ,以x结尾 x$

以x开头和结尾 ^x$ 且x次数只能为1 如果是xx则为false 该匹配为精确匹配

image-20240705220327292

量词

重复次数

*:>=0出现次数

+:至少有一个

?:0或1次

image-20240705221115236image-20240705221254157

image-20240705221425603

image-20240705221529566

逗号两次不能有空格

重复模式只对离他最近的那个生效

字符类

\d代表0~9范围数字

[abc]匹配字串为abc中的一个为true只选一个, a=>true ab=>false

[a-z]26里个字母之一

[A-Z]

[0-9]

[a-zA-Z0-9]

取反

[^xxx]除了xxx其余都匹配

预定义类

简写上述的类型

image-20240705231216839

修饰符

匹配模式

跟在表达式的后面,常见的有/表达式/i|g

i-ignore忽略大小写

g-global 全局匹配

替换
str.replace(正则替换规则,替换文本)

image-20240705231723482
匹配模式可以挤在一起书写

捕获组
() 将匹配到的捕获组放到数组为1的位置,举个例子

{{name}} 通过捕获组+正则能够找到{{xxx}}特征的 并且将内部是xxx划分为组

匹配子模式,存储在一个编号的组中

image-20240705233957141

非贪婪匹配

语法 在量词后加?

例子 a.*?b 表示尽可能少匹配 任意字符.

axxbxxb 匹配结果为axxb

贪婪匹配
a.*b

axxbxxb 匹配结果为axxbxxb 即使下一个条件b 成立了但是还是会匹配内容,直到b是最后一个

案例练习

image-20240705225648483

const reg = /^[a-zA-Z0-9_-]{6,16}$/

边界符精确匹配连续的6,16位在规定范围内的字符匹配

上一篇:ChatGPT 官方发布桌面端,向所有用户免费开放


下一篇:那些年背过的面试题——MySQL篇-事务