正则表达式是一个对象,它描述了字符模式。
JavaScript的RegExp类表示正则表达式和字符串和正则表达式定义,使用正则表达式来进行强大的模式匹配和搜索和替换文本功能的方法。
语法:
正则表达式可以用RegExp( ) 构造这样的定义:
var pattern = new RegExp(pattern, attributes); or simply var pattern = /pattern/attributes;
这里是参数的说明:
-
pattern: 一个字符串,指定正则表达式或其他正则表达式的模式。
-
attributes: 包含任何 "g", "i", 和"m" 属性指定全局,分别一个可选的字符串,不区分大小写和匹配。
括号:
在正则表达式的上下文中使用时,括号([])具有特殊的意义。它们被用于查找字符的范围。
| 表达式 | 描述 |
|---|---|
| [...] | 在括号之间的任何一个字符 |
| [^...] | 任何一个字符不是括号之间 |
| [0-9] | 它匹配从0到9任意十进制数 |
| [a-z] | 它匹配由小写a到小写 z的任何字符。 |
| [A-Z] | 它通过匹配的大写字母A-Z的任何字符 |
| [a-Z] | 它通过匹配从小写到大写Z的一个任意字符 |
上面显示的范围是一般的;你也可以使用的范围[0-3],通过3从0匹配任何十进制数, 或范围[b-v]匹配任何小写字母,从b至v
限定符:
频率或方括号内的字符序列与单个字符的位置可以通过一个特殊的字符来表示。每个特殊字符具有特定的内涵。在+, *, ?, 和$标志都遵循一个字符序列。
| 表达式 | 描述 |
|---|---|
| p+ | 它包含至少一个任意字符串匹配 |
| p* | 它包含零个或多个的任意字符串匹配 |
| p? | 它包含一个或多个的任意字符串匹配 |
| p{N} | 它含有N个p序列的字符串匹配 |
| p{2,3} | 它包含两个或三个的序列的字符串匹配 |
| p{2, } | 它至少包含两个p的序列匹配任何字符串 |
| p$ | 它在它的结束与对任何字符串匹配 |
| ^p | 它在它的开始与对任何字符串匹配 |
示例:
下面的例子将清除有关匹配字符的概念。
| Expression | 描述 |
|---|---|
| [^a-zA-Z] | 任何字符串不包含任何从a到Z. Z和A上的字符匹配 |
| p.p | 它包含p任意字符串,然后是任意字符依次匹配 |
| ^.{2}$ | 它正好包含两个字符的任意字符串匹配 |
| <b>(.*)</b> | <b>和</ b>括起的任何字符串的匹配 |
| p(hp)* | 它匹配任何含字符串ap后跟序列hp的零个或多个实例 |
Literal characters:
| 字符 | 描述 |
|---|---|
| 字母数字 | 它自己 |
| \0 | NUL 字符 (\u0000) |
| \t | 制表符 (\u0009) |
| \n | 新行(\u000A) |
| \v | 垂直选项卡 (\u000B) |
| \f | 换页 (\u000C) |
| \r | 回车 (\u000D) |
| \xnn | 由十六进制数字nn指定的拉丁字符; 例如,\ x0A相同睛\n |
| \uxxxx | 由十六进制数xxxx指定的Unicode字符;例如,\u0009和\t是一样的 |
| \cX | 控制字符^X;例如,\cJ的等同于换行符\n |
元字符
元字符仅仅是前面加一个反斜杠,其作用是让组合有特殊含义的字母字符。
例如,可以使用'\d'元字符搜索大的货币总额:/([\d]+)000/,这里\d将搜索数字字符的任意字符串。
以下是元字符,可以在Perl风格的正则表达式中使用的列表。
Character Description . a single character \s a whitespace character (space, tab, newline) \S non-whitespace character \d a digit (0-9) \D a non-digit \w a word character (a-z, A-Z, 0-9, _) \W a non-word character [\b] a literal backspace (special case). [aeiou] matches a single character in the given set [^aeiou] matches a single character outside the given set (foo|bar|baz) matches any of the alternatives specified
修饰符
几个修饰符是可用,可以使工作与正则表达式要容易得多,比如大小写,在搜索多行等。
| Modifier | 描述 |
|---|---|
| i | 执行不区分大小写的匹配 |
| m | 规定,如果字符串有换行或回车符,^和$运算符现在可以匹配,而不是一个字符串边界对一个换行符边界 |
| g | 执行一个全局匹配就是找到所有匹配,而不是在第一个匹配项后停止。 |
RegExp 属性:
这里是每个属性和它们的描述的列表
| Property | 描述 |
|---|---|
| constructor | 指定创建对象的原型的功能 |
| global | 如果指定了“g”修改被设置 |
| ignoreCase | 如果指定了“i”修改被设置 |
| lastIndex | 在该索引开始下一个匹配 |
| multiline | 如果指定了“m”修饰符设置 |
| source | 文本的模式 |
RegExp 方法:
这里是每种方法及其描述的列表。
| Method | 描述 |
|---|---|
| exec() | 执行搜索在其字符串参数匹配 |
| test() | 测试其字符串参数匹配 |
| toSource() | 返回一个对象字面表示指定的对象; 可以使用这个值来创建一个新的对象 |
| toString() | 返回表示指定对象的字符串 |
