RegExp
正则表达式是描述字符模式的对象。
JavaScript RegExp类表示正则表达式,String和RegExp定义了使用正则表达式在文本上执行强大的模式匹配和搜索和替换功能的方法。
语法 (Syntax)
可以使用RegExp ()构造函数定义正则表达式,如下所示 -
var pattern = new RegExp(pattern, attributes);
or simply
var pattern = /pattern/attributes;
以下是参数的说明 -
pattern - 一个字符串,它指定正则表达式或另一个正则表达式的模式。
attributes - 一个可选字符串,包含分别指定全局,不区分大小写和多行匹配的任何“g”,“i”和“m”属性。
Brackets
在正则表达式的上下文中使用时,括号([])具有特殊含义。 它们用于查找一系列字符。
Sr.No | 表达和描述 |
---|---|
1 | [...] 括号内的任何一个字符。 |
2 | [^...] 任何一个字符不在括号之间。 |
3 | [0-9] 它匹配从0到9的任何十进制数字。 |
4 | [az] 它匹配从小写字母a到小写字母z的任何字符。 |
5 | [AZ] 它匹配从大写A到大写Z的任何字符。 |
6 | [aZ] 它匹配从小写字母a到大写字母Z的任何字符。 |
上面显示的范围是一般的; 您还可以使用范围[0-3]来匹配范围从0到3的任何十进制数字,或者使用范围[bv]来匹配范围从b到v任何小写字符。
量词(Quantifiers)
括号中的字符序列和单个字符的频率或位置可以用特殊字符表示。 每个特殊字符都有特定的含义。 +,*,?和$标志都遵循字符序列。
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 它匹配任何字符串,在它的开头有p。 |
例子 (Examples)
以下示例详细介绍了匹配字符。
Sr.No | 表达和描述 |
---|---|
1 | [^a-zA-Z] 它匹配任何不包含从a到z和A到Z的任何字符的字符串。 |
2 | pp 它匹配任何包含p,字符串p,后跟任何字符,然后是另一个p 。 |
3 | ^.{2}$ 它匹配任何包含两个字符的字符串。 |
4 | 《b》(.*)《/b》 它匹配和 b>中包含的任何字符串。 |
5 | p(hp)* 它匹配任何包含p字符串,后跟零个或多个序列hp实例。 |
文字字符
Sr.No | 字符和描述 |
---|---|
1 | Alphanumeric 本身 |
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 |
元字符(Metacharacters)
元字符只是一个字母字符,前面是反斜杠,用于赋予组合特殊含义。
例如,你可以使用'\ d'元字符搜索一大笔钱: /([\d]+)000/ ,这里\d将搜索任何数字字符串。
下表列出了一组可在PERL样式正则表达式中使用的元字符。
Sr.No | 字符和描述 |
---|---|
1 | . 单个字符 |
2 | \s 空格字符(空格,制表符,换行符) |
3 | \S 非空白字符 |
4 | \d 一个数字(0-9) |
5 | \D 一个非数字 |
6 | \w 单词字符(az,AZ,0-9,_) |
7 | \W 一个非单词字符 |
8 | [\b] 文字退格(特殊情况)。 |
9 | [aeiou] 匹配给定集合中的单个字符 |
10 | [^aeiou] 匹配给定集合之外的单个字符 |
11 | (foo|bar|baz) 匹配指定的任何替代方案 |
修饰符 Modifiers
有几种修饰符可以简化你使用regexps,的方式regexps,例如区分大小写,多行搜索等。
Sr.No | 修饰符和描述 |
---|---|
1 | i 执行不区分大小写的匹配。 |
2 | m 指定如果字符串具有换行符或回车符,则^和$运算符现在将与换行符边界匹配,而不是字符串边界 |
3 | g 执行全局匹配,即找到所有匹配而不是在第一次匹配后停止。 |
RegExp属性
以下是与RegExp相关的属性列表及其说明。
Sr.No | 财产和描述 |
---|---|
1 | constructor 指定创建对象原型的函数。 |
2 | global 指定是否设置“g”修饰符。 |
3 | ignoreCase 指定是否设置“i”修饰符。 |
4 | lastIndex 开始下一场比赛的索引。 |
5 | multiline 指定是否设置“m”修饰符。 |
6 | source 模式的文本。 |
在以下部分中,我们将通过一些示例来演示RegExp属性的用法。
RegExp方法
以下是与RegExp相关的方法列表及其说明。
Sr.No | 方法和描述 |
---|---|
1 | exec() 在其字符串参数中执行匹配搜索。 |
2 | test() 在其字符串参数中测试匹配项。 |
3 | toSource() 返回表示指定对象的对象文字; 您可以使用此值来创建新对象。 |
4 | toString() 返回表示指定对象的字符串。 |
在以下部分中,我们将通过一些示例来演示RegExp方法的用法。