正则表达式详解
正则表达式是 regular expression 的缩写,检查表达式符不符合规定的对象。RegExp 对象在 JavaScript 1.2 版本以上提供,具有检查给出的字符串是否符合规则的属性和方法。
RegExp 对象
RegExp 对象用来规范一个规范的表达式(也就是表达式符不符合特定的要求,比如是不是 Email 地址格式等)。它具有用来检查给出的字符串是否符合规则的属性和方法。
核心对象
在 JavaScript 1.2, NES 3.0 以上版本提供。在 JavaScript 1.3 以后版本增加了 toSource 方法。
建立方法
有两种建立方法:文字格式或 RegExp 构造器函数。
文字格式
使用以下格式:/pattern/flags 即/模式/标记
构造器函数
使用以下格式:new RegExp("pattern"[, "flags"])即 new RegExp("模式"[,"标记"])
参数
* pattern(模式):表示正则表达式的文本
* flags(标记):如果指定此项,flags 可以是以下值之一:
+ g: 全定匹配
+ i: 忽略大小写
+ gi: 既匹配所有可能的值,也忽略大小写
注意
* 文本格式中的参数不要使用引号标记,而构造器函数的参数则要使用引号标记。
* 所以下面的两条语句是等价的:/ab+c/i 和 new RegExp("ab+c", "i")
特殊字符
在正则表达式中能够使用的完整对特殊字符的一个完整的列表和描述:
* 字符\:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,\不作解释。
* 字符^:表示匹配的字符必须在最前边。
* 字符$:与^类似,匹配最末的字符。
* 字符*:匹配*前面的字符 0 次或 n 次。
* 字符+:匹配+号前面的字符 1 次或 n 次。等价于{1,}。
* 字符?:匹配?前面的字符 0 次或 1 次。
* 字符.:(小数点)匹配除换行符外的所有单个的字符。
示例
* /b/匹配字符'b', 通过在 b 前面加一个反斜杠\,也就是/\b/,则该字符变成特殊字符,表示匹配一个单词的分界线。
* /a*/意味匹配 0 个或多个 a。
* /a\*/匹配'a*'
* /^A/不匹配"an A,"中的'A',但匹配"An A."中最前面的'A'。
* /t$/不匹配"eater"中的't',但匹配"eat"中的't'。
* /bo*/匹配"A ghost booooed"中的'boooo'或"A bird warbled"中的'b',但不匹配"A goat g runted"中的任何字符。
* /a+/匹配"candy"中的'a'和"caaaaaaandy."中的所有'a'。
* /e?le?/匹配"angel"中的'el'和"angle."中的'le'。
* /.n/匹配"nay, an apple"中的'n'。