正则表达式是描述字符模式的对象。JavaScript RegExp类表示正则表达式,String和RegExp都定义了使用正则表达式执行强大的模式匹配和文本搜索替换函数的方法。本文主要介绍JavaScript(JS) 正则表达式 和 RegExp 对象。

1、创建Regexp对象

语法

可以使用Regexp()构造函数定义正则表达式,如下所示:

var pattern = new RegExp(pattern, attributes);

或者

var pattern = /pattern/attributes;

这是参数的描述 :

pattern : 一个字符串,用于指定正则表达式的模式或另一个正则表达式。

attributes : 一个可选字符串,包含任何gi、m 、suy属性,分别g指定全局,i不区分大小写、m多行匹配、s启用“dotall”模式,允许点.匹配换行符\nu是启用完整的 Unicode 支持。和y是 "Sticky"模式:允许在源字符串中的给定位置执行搜索。

2、括号

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

序号

表达和描述

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的任何小写字符。

3、量词

括起来的字符序列和单个字符的频率或位置可以用一个特殊字符表示。每个特殊的字符都有特定的内涵+*?$标志都跟在字符序列后面。

序号

表达和描述

1

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

2

P*:它匹配包含零或更多P的任何字符串。

3

p?:它匹配最多一个包含的字符串。

4

p{n}:它与包含n p序列的任何字符串匹配

5

p{2,3}:它匹配包含两种或三个P序列的任何字符串。

6

p {2, }:它匹配包含至少两个p序列的任何字符串。

7

p$:它与它结束时使用p的任何字符串匹配。

8

^p:它匹配任何以p开头的字符串。

例如,

以下示例详细介绍匹配字符。

序号

表达和描述

1

[^ a-zA-Z]:它匹配任何不包含从a到z和A到Z范围内任何字符的字符串。

2

p.p:它匹配包含p的任何字符串,后跟任何字符,然后再后跟另一个p。

3

^.{2}$:它匹配任何恰好包含两个字符的字符串。

4

<b>(.*)</b>:它匹配包含在<b>和</b>中的任何字符串。

5

p(hp)*:它匹配任何包含p后跟0个或多个序列hp实例的字符串。

4、文字字符

序号

字符和描述

1

字母数字:本身

2

\0:NUL字符(\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

5、元字符

元字符就是前面加反斜杠的字母字符,它为组合赋予特殊含义。

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

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

序号

字符和描述

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):匹配任何指定的备选项

6、修饰符

有几种修饰符可用于简化使用Regexps的方式,如案例灵敏度,以多行搜索等。

序号

修饰符和描述

1

i:执行不区分大小写的匹配。

2

m:指定如果字符串具有换行符或回车符,^和$操作符现在将匹配换行符边界,而不是字符串边界

3

g:执行全局匹配,即找到所有匹配,而不是在第一个匹配之后停止。

7、RegExp 属性

以下是与Regexp及其描述相关的属性列表。

序号

属性和描述

1

constructor:指定创建对象原型的函数。

2

global:指定是否设置了“g”修饰符。

3

ignoreCase:指定是否设置了“i”修饰符。

4

lastIndex:开始下一个匹配的索引。

5

multiline:指定是否设置了“m”修饰符。

6

source:pattern的文本

8、RegExp 方法

以下是与Regexp相关的方法以及他们的描述。

Sr.No.

方法和描述

1

exec():在其字符串参数中执行搜索匹配项。

2

test():在其字符串参数中的匹配测试。

3

toSource():返回表示指定对象的对象文字;可以使用此值创建一个新对象。

4

toString():返回表示指定对象的字符串。

推荐文档