阅读(3843)
赞(12)
JavaScript 正则表达式
2016-08-12 22:04:48 更新
正则表达式
正则表达式是一个对象,这个对象描述一种字符模式。
JavaScript RegExp 类代表正则表达式,字符串和 RegExp 都定义了方法,在方法中使用正则表达式来执行文本中强大的模式匹配和搜索替换功能。
语法
正则表达式可以被 RegExp() 构造函数定义,如下所示:
var pattern = new RegExp(pattern, attributes);
or simply
var patter = /pattern/attributes;
参数描述:
- pattern:是一个字符串,指定了正则表达式的模式或其他正则表达式。
- attributes:是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。
方括号
方括号 ([]) 用于正则表达式的上下文中时有特殊意义,用来查找一系列字符。
表达 | 描述 |
---|---|
[...] | 查找方括号之间的任何字符 |
[^...] | 查找任何不在方括号之间的字符 |
[0-9] | 查找任何从 0 至 9 的数字 |
[a-z] | 查找任何小写 a 到小写 z 的字符 |
[A-Z] | 查找任何大写 A 到大写 Z 的字符 |
[a-Z] | 查找任何小写 a 到大写 Z 的字符 |
上面所示的范围为一般情况;还可以使用范围 (0-3) 匹配任何从 0 到 3 的十进制数字,或范围 (b-v) 来匹配任何从小写 b 到小写 v 的字符。
量词
方括号括起来的字符序列或单个字符出现的频率或位置可以用一个特殊的符号来表示。每个特殊字符都有一个特定的含义。+、*、? 和 $ 符号都遵循一个字符序列模式。
表达 | 描述 |
---|---|
p+ | 匹配任何包含至少一个 p 的字符串 |
p* | 匹配任何包含零个或多个 p 的字符串 |
p? | 匹配任何包含零个或一个 p 的字符串 |
p{N} | 匹配包含 N 个 p 的序列字符串 |
p{2,3} | 匹配包含 2 或 3 个 p 的序列的字符串 |
p{2,} | 匹配包含至少 2 个 p 的序列的字符串 |
p$ | 匹配任何结尾为 p 的字符串 |
^p | 匹配任何开头为 p 的字符串 |
例子
下面的例子会帮助理清字符匹配的概念。
表达 | 描述 |
---|---|
[^a-zA-Z] | 匹配任何不包含从 a 到 z 和从 A 到 Z 中任何字符的字符串 |
p.p | 匹配任何以一个 p 开始、其次是任意字符、紧随其后的是另一个 p 的字符串 |
^.{2}$ | 匹配任何包含两个字符的字符串 |
<b>(.*)</b> | 匹配任何封闭在 <b> 和 </b> 内的字符串 |
p(hp)* | 匹配任何包含一个 p、紧随其后的零个或多个 hp 序列的字符串 |
原义字符
字符 | 描述 |
---|---|
Alphanumeric | 它自己 |