正则表达式

323 阅读2分钟

正则表达式

一、介绍

1、什么是正则表达式

1)正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象

2)通常用来查找,替换那些符合正则表达式的文本,许多语言都支持正则表达式

3)正则表达式在JavaScript中的使用场景

①例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)

②比如用户名: /^[a-z0-9_-]{3,16}$/

③ 过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。

4)正则表达式的作用

①表单验证(匹配)

②过滤敏感词(替换)

③字符串中提取我们想要的部分(提取)

二、语法

1、定义正则表达式的语法:let 变量名 = /表达式/

1)其中/ /是正则表达式字面量

2)比如: let reg = /前端/

2、判断是否有符合规则的字符串

1)test( )方法 用来查看正则表达式语指定的字符串是否匹配

2)语法:regObj.test(被检测的字符串)

3)比如:

image_h4addX_x1Q.png

4)如果正则表达式与指定的字符串匹配,返回true,否则false

3、检索(查找)符合规则的字符串

1)exec( ) 方法 在一个指定字符串中执行一个搜索匹配

2)语法:regObj.exec(被检测字符串)

3)比如:

image_AiAl8GJr5e.png

如果匹配成功,exec() 方法返回一个数组,否则返回null

三、元字符

1、普通字符:大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字,也就是说普通字符只能够匹配字符串中与它们相同的字符

2、元字符(特殊字符)

1)作用:是一些具有特殊含义的字符,可以极大提高了灵活性和强大的匹配功能

2)元字符写法:[a-z]

3)参考文档:

① MDN:developer.mozilla.org/zh-CN/docs/…

②正则测试工具: tool.oschina.net/regex

3、边界符

1)正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

2)如果^和$在一起使用,表示必须是精确匹配

image_g9orCSTqJE.png

4、量词

1)量词用来 设定某个模式出现的次数

量词说明
*重复零次或更多次
+重复一次或更多次
重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

注意:逗号左右两侧不能出现空格

5、字符类(占位符)

1)[ ]里面加上 - 连字符

①使用连字符 - 表示一个范围

image_X34RZl5Qhf.png

②比如:

  • [a-z] 表示 a 到 z 26个英文字母都可以

  • [a-zA-Z] 表示大小写都可以

  • [0-9] 表示 0~9 的数字都可以

image_ghl2k46bwJ.png

2)[ ]里面加上 ^ 取反符号

①比如:

  • [^a-z]匹配除了小写字母以外的字符

  • 注意要写到中括号里面

3). 匹配除换行符之外的任何单个字符

4)预定义:指的是某些常见模式的简写方式

预定类说明
\d匹配0-9之间的任一数字,相当于[0-9]
\D匹配所有0-9以外的字符,相当于[^0-9]
\w匹配任意的字母,数字和下划线,相当于[A-Za-z-0-9_]
\W除所有字母,数字和下划线以外的字符,相当于[^A-Za-z0-9_]
\s匹配空格(包含换行符、制表符、空格符等),相当于[\t\r\n\v\f]
\S匹配非空格的字符,相当于[^\t\r\n\v\f]

image_wk51rdI0di.png

四、修饰符

1)修饰符约束正则表达式的某些细节行为,如是否区分大小写、是否支持多行匹配等

2)语法: /表达式/修饰符

① i 是单词ignore的缩写,正则匹配时字母不区分大小写

② g 是global的缩写,匹配所有满足正则表达式的结果

image_hhKNM9LpI2.png

3)替换 replace

① 语法:

image_-qSp3tGtLO.png