JS的正则表达式 - RegExp

RegExp 对象

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

 

正则表达式的创建方式 

1.文字格式,使用方法如下: 

/pattern/flags  (即:/模式/标记) 

2.RegExp构造函数,使用方法如下: 

new RegExp("pattern"[,"flags"])  (即:new RegExp("模式"[,"标记"]))

 

参数说明 

pattern (模式):表示正则表达式的文本,也可以是正则表达式对象。 

flags (标记):是一个可选的字符串,包含属性 "g"、"i" 和 "gi",属性说明见下文。如果 pattern 是正则表达式对象,而不是字符串,则必须省略此参数。

 

flags各属性值说明

g:global match(全局匹配) 

i:ignore case(忽略大小写) 

gi:both global match and ignore case(匹配所有可能的值,也忽略大小写)

 

注意:文字格式中的参数不要使用引号标记,而构造函数的参数(当参数是字符串时)则要使用引号标记。所以下面的两种创建方式是等价的:

var reg = /ab+c/g;
var reg = new RegExp("ab+c","g"); 

 

另外,当使用构造函数创建正则表达式的时候,若参数是字符串,在文字格式中需要转义的地方,到了构造函数的字符串参数中就要进行双重转义。

因为,文字格式的正则表达式里,使用元字符(下面会提到什么是元字符)都要进行转义,而字符串中,使用字符“\”要对其自身转义。

也就是说,构造函数创建正则表达式,其第一个参数为字符串时,如果要用到元字符,都要进行双重转义。

例如,下面的两条语句是等价的:

var reg = new RegExp("\\字符串");  //双重转义
var reg = /\字符串/; 

 

元字符

(  [  {  \  ^   $  |  )   ?  *  + 

任何时候要使用这些元字符 ,都必须对它们进行转义。如:

var reg = new RegExp("\\[0-9]");  
var reg = /\[0-9]/; 

元字符可以与常规字符搭配,就能搭配出具有不同意义的表达式,各种意义不同的表达式组合起来,就能组成匹配功能强大的复杂表达式。

下面将列出元字符与常规搭配,所具有的不同意义。

 

方括号用于查找某个范围内的字符

表达式描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。

 

特殊含义字符

元字符描述
. 查找单个字符,除了换行符和回车之外的任意字符。 等价于:[^\n\r]
\w 查找单词字符。 等价于:[a-zA-Z_0-9]
\W 查找非单词字符。 等价于:[^a-zA-Z_0-9]
\d 查找数字。 等价于:[0-9]
\D 查找非数字字符。 等价于:[^0-9]
\s 查找空白字符。 等价于:[\t\n\x0B\f\r]
\S 查找非空白字符。 等价于:[^\t\n\x0B\f\r]
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

 

量词

量词描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

 

RegExp 对象属性

属性描述FFIE
global RegExp 对象是否具有标志 g。 1 4
ignoreCase RegExp 对象是否具有标志 i。 1 4
lastIndex 一个整数,标示开始下一次匹配的字符位置。 1 4
multiline RegExp 对象是否具有标志 m。 1 4
source 正则表达式的源文本。 1 4

 

RegExp 对象方法

方法描述FFIE
compile 编译正则表达式。 1 4
exec 检索字符串中指定的值。返回找到的值,并确定其位置。 1 4
test 检索字符串中指定的值。返回 true 或 false。 1 4

 

支持正则表达式的 String 对象的方法

方法描述FFIE
search 检索与正则表达式相匹配的值。 1 4
match 找到一个或多个正则表达式的匹配。 1 4
replace 替换与正则表达式匹配的子串。 1 4
split 把字符串分割为字符串数组。 1 4
posted @ 2013-12-07 10:54  前端攻城师-CZF  阅读(372)  评论(0编辑  收藏  举报