51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

简单介绍下ES6中的正则表达式[regex]属性构造方法

简单介绍下ES6中的正则表达式[regex]属性构造。众所周知,正则表达式是描述字符模式的对象。正则表达式通常缩写为"regex"或"regexp"。

ES 6 RegExp

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

javascript regexp类表示正则表达式,string和regexp都定义了使用正则表达式执行强大的模式匹配、搜索和替换文本函数的方法。

正则表达式可以定义为:

var pattern = new RegExp(pattern, attributes); 
//或者
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* 匹配任何包含0或多个p的字符串 | | 3 | p? 匹配任何包含零个或一个p的字符串。 | | 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和从A到Z的任何字符的字符串,即匹配任何不在方括号范围之间的字符。 | | 10 | p.p 匹配任何包含p的字符串,后跟任何字符,然后再跟另一个p | | 11 | ^.{2}$ 匹配任何恰好包含两个字符的字符串 | | 12 | <b>(.*)</b> 匹配<b>和</ b>中包含的任何字符串 | | 13 | p(hp)* 匹配任何包含p的字符串,后跟零个或多个序列hp的实例 |

文字字符

| Sr.No | 和描述 | |-------|---------------------------------------------------------| | 1 | 字母数字 本身 | | 2 | \0 查找 NUL 字符(\u0000) | | 3 | \t 查找制表符 (\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) 匹配指定的任何替代方案 |

RegExp属性

| Sr.No | 属性和描述 | |-------|-------------------------------------------------------------------| | 1 | RegExp.prototype.constructor 返回一个函数,该函数是一个创建 RegExp 对象的原型。 | | 2 | RegExp.prototype.global 判断是针对字符串中所有可能的匹配测试正则表达式,还是仅针对第一个匹配测试正则表达式 | | 3 | RegExp.prototype.ignoreCase 是否在字符串中尝试匹配时忽略大小写 | | 4 | RegExp.prototype.multiline 是否跨多行搜索字符串 | | 5 | RegExp.prototype.source 返回正则表达式的匹配模式,正则表达式的源文本。 | | 6 | RegExp.prototype.lastIndex 一个整数,标示开始下一次匹配的字符位置。 |

RegExp方法

| Sr.No | 方法和描述 | |-------|--------------------------------------------------------------------------| | 1 | RegExp.prototype.exec() 检索字符串中指定的值。返回找到的值,并确定其位置。 | | 2 | RegExp.prototype.test() 检索字符串中指定的值。返回 true 或 false。 | | 3 | RegExp.prototype.match() 对给定字符串执行匹配并返回匹配结果 | | 4 | RegExp.prototype.replace() 用新的子字符串替换给定字符串中的匹配项 | | 5 | RegExp.prototype.search() 搜索给定字符串中的匹配项,并返回在字符串中找到的模式的索引 | | 6 | RegExp.prototype.split() 通过将字符串分隔为子字符串,即将给定字符串拆分为字符串数组 | | 7 | RegExp.prototype.toString() 返回表示指定对象的字符串。覆盖object.prototype.toString()方法 |


赞(1)
未经允许不得转载:工具盒子 » 简单介绍下ES6中的正则表达式[regex]属性构造方法