开发学院

您的位置:首页>教程>正文

教程正文

ES6 RegExp对象

ES6 RegExp对象

  正则表达式是描述字符模式的对象。正则表达式通常缩写为"regex"或者"regexp"。

JavaScript RegExp类表示正则表达式,字符串和正则表达式定义了使用正则表达式执行功能强大的模式匹配和搜索和替换功能的方法。

  正则表达式可以定义为:

var pattern = new RegExp(pattern, attributes);

  或者

var pattern = /pattern/attributes;

  下面的属性可以用在任意组合中

  • 1.G:全局匹配

  • 2.I:忽略大小写

  • 3.M:多行匹配,将开头和结尾字符(^和$)处理为多个行(即,匹配每个行的开始或结束(由\ n或\ r分隔),而不仅仅是整个输入字符串的开头或结尾)

  • 4.U:Unicode匹配,将匹配模式视为unicode代码点的序列

  • 5.Y:黏性匹配; 仅与目标字符串中此正则表达式的lastindex属性指示的索引匹配(并且不尝试与任何后续索引匹配)

构造正则表达式

括号

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

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

量词

  括号内字符序列和单个字符的频率或位置可以用量词表示。每个量词都有一个具体的意义+, *, ?,$都遵循一个字符序列。

  • 1.p+:包含至少一个p的任何字符串

  • 2.p*:包含零或更多p的任何字符串

  • 3.p?:包含一个或多个p ' 's的任何字符串

  • 4.p{N}:包含n个p序列的任何字符串

  • 5.p{2,3}:包含两个或三个p的序列的任意字符串

  • 6.p{2, }:包含至少两个p的序列的任意字符串

  • 7.p$:它将任何一个字符串与它的末尾的p相匹配

  • 8.^p:在开头匹配任何与p有关的字符串

  • 9.[^a-zA-Z]:它匹配不包含从小写a到大写Z的任意字符

  • 10.p.p:它匹配任意包含p的字符串,后跟这任意字符,依次后跟另一个p

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

  • 12.<b>(.*)</b>:匹配<b>和</b>直接的任意字符

  • 13.p(hp)*:它匹配包含p的任何字符串,后跟着零或序列HP的更多实例

文字字符

  • 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将搜索任何数字。

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

  • 1..:单个字符

  • 2.\s:一个空格字符(space, tab, newline)

  • 3.\S:非空格字符

  • 4.\d:数字(0-9)

  • 5.\D:非数字

  • 6.\w:包含大小写字母和数字(a-z, A-Z, 0-9, _)

  • 7.\W:不包含大小写字母和数字

  • 8.[\b]:退格 (special case)

  • 9.[aeiou]:匹配给定集合中的字符

  • 10.[^aeiou]:匹配给定集合之外的字符

  • 11.(foo|bar|baz):匹配指定的任意字符

RegExp对象属性

  • 1.RegExp.prototype.flags:包含正则表达式对象的标志的字符串

  • 2.RegExp.prototype.global:RegExp对象是否具有标志 g。

  • 3.RegExp.prototype.ignoreCase:在尝试字符串中的匹配时是否忽略大小写

  • 4.RegExp.prototype.multiline:是否在跨多个行中搜索字符串

  • 5.RegExp.prototype.source:正则表达式的源文本

  • 6.RegExp.prototype.sticky:搜索是否是粘性的

RegExp对象方法

  • 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():返回表示指定对象的字符串。覆盖toString()方法