ES6 - 正则表达式


ES6 正则表达式

正则表达式是描述字符模式的对象。正则表达式通常缩写为“正则表达式”或“正则表达式”。

JavaScript RegExp类表示正则表达式,并且String和RegExp定义了使用正则表达式在文本上执行强大的模式匹配和搜索和替换功能的方法。

正则表达式可以定义为 -

var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;

该属性可以具有以下值的任意组合。

Sr.No 属性 & 描述
1

G

全局匹配

2

I

忽略大小写

3

M

多行;将开始和结束字符(^和$)视为在多行上工作(即匹配每行的开头或结尾(由\ n或\ r分隔),而不仅仅是整个输入字符串的开头或结尾)

4

U

Unicode; 将该模式视为一系列unicode代码点

5

Y

Sticky; 仅匹配目标字符串中此正则表达式的lastIndex属性所指示的索引(并且不会尝试与任何后续索引进行匹配)

构造正则表达式

括号

括号([])在正则表达式的上下文中使用时有特殊含义。它们用于查找一系列字符。

Sr.No 表达式 & 描述
1

[...]

括号内的任何一个字符

2

[^...]

任何一个字符不在括号之间

3

[0-9]

它匹配从0到9的任何十进制数字

4

[a-z]

它匹配从小写字母a到小写字母z的任何字符

5

[A-Z]

它匹配从大写字母A到大写字母Z的任何字符

6

[a-Z]

它匹配从小写字母a到大写字母Z的任何字符

上面显示的范围是一般的;您还可以使用范围[0-3]来匹配范围从0到3的任何小数位,或范围[b-v]以匹配范围从b到v的任何小写字符。

量词

括号内的字符序列和单个字符的频率或位置可以用特殊字符表示。每个特殊字符都有一个特定的内涵。+*$标志都遵循字符序列。

Sr.No 表达式 & 描述
1

p+

它匹配任何包含至少一个p的字符串。

2

p*

它匹配任何包含零个或多个p的字符串

3

p?

它匹配任何包含一个或多个p的字符串

4

p{N}

它匹配任何包含N p个序列的字符串

5

p{2,3}

它匹配任何包含两个或三个p序列的字符串

6

p{2, }

它匹配任何包含至少两个p序列的字符串

7

p$

它匹配任何字符串与它的结尾处的p

8

^p

它在任何字符串的开头匹配任何字符串

9

[^a-zA-Z]

它匹配任何不包含范围从a到z和A到Z的字符的字符串

10

p.p

它匹配任何包含p的字符串,后跟任何字符,然后依次跟随另一个p

11

^.{2}$

它匹配任何包含两个字符的字符串

12

<b>(.*)</b>

它匹配中的任何字符串

13

p(hp)*

它匹配任何包含p的字符串,然后是零个或多个序列hp的实例

文字

Sr.No Character & Description
1

Alphanumeric

本身

2

\0

NULL字符(\ u0000)

3

\t

Tab (\u0009)

4

\n

换行(\ u000A)

5

\v

垂直制表符(\ u000B)

6

\f

换页(\ u000C)

7

\r

回车(\ u000D)

8

\xnn

由十六进制数nn指定的拉丁字符;例如,\ x0A与\ n相同

9

\uxxxx

由十六进制数字xxxx指定的Unicode字符;例如,\ u0009与\ t相同

10

\cX

控制字符^ X;例如,\ cJ等同于换行符\ n

元字符

元字符只是一个字母字符,前面是一个反斜杠,用于为组合赋予特殊的含义。

例如,您可以使用'\ d'元字符搜索大量资金:/([\ d] +)000 /。在这里,\ d将搜索数字字符的任何字符串。

下表列出了可在PERL样式正则表达式中使用的一组元字符。

Sr.No 字符 & 描述
1

.

单个字符

2

\s

空格字符(空格,制表符,换行符)

3

\S

非空白字符

4

\d

一个数字(0-9)

5

\D

非数字

6

\w

字符(a-z,A-Z,0-9,`_`)

7

\W

非单词字符

8

[\b]

字面退格(特殊情况)

9

[aeiou]

匹配给定集合中的单个字符

10

[^aeiou]

匹配给定集外的单个字符

11

(foo|bar|baz)

匹配任何指定的替代品

正则表达式属性

Sr.No 属性 & 描述
1 RegExp.prototype.flags

包含RegExp对象标志的字符串

2 RegExp.prototype.global

是否针对字符串中的所有可能的匹配测试正则表达式,还是仅针对第一个

3 RegExp.prototype.ignoreCase

是否在尝试匹配字符串时忽略大小写

4 RegExp.prototype.multiline

是否跨多行搜索字符串

5 RegExp.prototype.source

模式的文本

6 RegExp.prototype.sticky

搜索是否粘滞

正则表达式方法

Sr.No Method & Description
1 RegExp.prototype.exec()

在其字符串参数中执行搜索匹配

2 RegExp.prototype.test()

测试其字符串参数中的匹配项

3 RegExp.prototype.match()

对给定的字符串执行匹配并返回匹配结果

4 RegExp.prototype.replace()

使用新的子字符串替换给定字符串中的匹配项

5 RegExp.prototype.search()

搜索给定字符串中的匹配并返回字符串中找到的模式的索引

6 RegExp.prototype.split()

通过将字符串分离为子字符串,将给定的字符串拆分为数组

7 RegExp.prototype.toString()

返回表示指定对象的字符串。覆盖theObject.prototype.toString()方法