javascript与正则表达式基础一
2008-01-25 15:23
525 查看
1、 正则表达式元字符:
( { { / ^ $ | } ? * + .
2、 特殊字符:
/t 制表符
/n 换行符
/r 回车符
/f 换页符
/a alert字符
/e escape字符
/cX 与X相对应的控制字符
/b 回退字符
/v 垂直制表符
/0 空字符
注意:如果通过RegExp构造函数来使用它们,则都必须进行双重转义。
3、 字符类:
3.1简单类
例:假设想匹配”bat”,”cat”,”fat”。使用简单类就可以方便的解决问题:
var sToMatch=”a bat,a cat,a fat bat,a fat cat”;
var reBatCatRat=/[bcf]at/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”bat”,”cat”,”fat”,”bat”,”fat”,”cat”。
3.2负向类(negation class)
例,同上,如果只想获取包含at但不能以b或c开头单词。
var sToMatch=”a bat,a cat,a fat bat,a fat cat”;
var reBatCatRat=/[^bc]at/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”fat”,”fat”。
3.3范围类(range class)
例,要测试的字符恰好按照字符编码的顺序排列的时候,范围类就很管用。
var sToMatch=”n1,n2,n3,n4,n5,n6,n7,n8,n9”;
var reBatCatRat=/n[1-4]/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”n1”,”n2”,”n3”,”n4”。
3.4组合类(combination class)
如:[a-m1-4/n]
主意:在内部的类之间不要有空格。
Javascript/ECMAScript不支持某些其他正则表达式实现中的联合类(union class)和交叉类(intersection class)。这意味着不能有类似[a-m[p-z]]或者[a-m[^b-e]之类的模式出现。
3.5预定义类
如下表:
4、 量词(quantifier)
可以指定某个特定模式出现的次数。
4.1简单量词
4.2贪婪的、惰性的、支配性的量词
注意:浏览器对支配量词的支持还很不完善,IE和Opera不支持支配量词,如果要用它,就会抛出一个错误。Mozilla不会产生错误,但是它会将支配量词看着实贪婪的。
另外:还有一些复杂模式:如分组,反向应用,候选,非捕获性分组,前瞻,边界,多行模式等
( { { / ^ $ | } ? * + .
2、 特殊字符:
/t 制表符
/n 换行符
/r 回车符
/f 换页符
/a alert字符
/e escape字符
/cX 与X相对应的控制字符
/b 回退字符
/v 垂直制表符
/0 空字符
注意:如果通过RegExp构造函数来使用它们,则都必须进行双重转义。
3、 字符类:
3.1简单类
例:假设想匹配”bat”,”cat”,”fat”。使用简单类就可以方便的解决问题:
var sToMatch=”a bat,a cat,a fat bat,a fat cat”;
var reBatCatRat=/[bcf]at/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”bat”,”cat”,”fat”,”bat”,”fat”,”cat”。
3.2负向类(negation class)
例,同上,如果只想获取包含at但不能以b或c开头单词。
var sToMatch=”a bat,a cat,a fat bat,a fat cat”;
var reBatCatRat=/[^bc]at/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”fat”,”fat”。
3.3范围类(range class)
例,要测试的字符恰好按照字符编码的顺序排列的时候,范围类就很管用。
var sToMatch=”n1,n2,n3,n4,n5,n6,n7,n8,n9”;
var reBatCatRat=/n[1-4]/gi;
var arrMatches= sToMatch.match(reBatCatRat);
其中arrMatches数组现在存放了这些值:”n1”,”n2”,”n3”,”n4”。
3.4组合类(combination class)
如:[a-m1-4/n]
主意:在内部的类之间不要有空格。
Javascript/ECMAScript不支持某些其他正则表达式实现中的联合类(union class)和交叉类(intersection class)。这意味着不能有类似[a-m[p-z]]或者[a-m[^b-e]之类的模式出现。
3.5预定义类
如下表:
代码 | 等同于 | 匹配 |
. | [^/n/r] | 除了换行和回车之外的任意字符 |
/d | [0-9] | 数字 |
/D | [^0-9] | 非数字字符 |
/s | [/t/n/x0B/f/r] | 空白字符 |
/S | [^/t/n/x0B/f/r] | 非空白字符 |
/w | [a-zA-Z_0-9] | 单词字符 |
/W | [^a-zA-Z_0-9] | 非单词字符 |
可以指定某个特定模式出现的次数。
4.1简单量词
代码 | 描述 |
? | 出现零次或一次 |
* | 出现零次或多次(任意次) |
+ | 出现一次或多次(至少出现一次) |
{n} | 一定出现n次 |
{n,m} | 至少出现n次但不超过m次 |
{n,} | 至少出现n次 |
贪婪 | 惰性 | 支配 | 描述 |
? | ?? | ?+ | 出现零次或一次 |
* | *? | *+ | 出现零次或多次(任意次) |
+ | +? | ++ | 出现一次或多次(至少出现一次) |
{n} | {n}? | {n}+ | 一定出现n次 |
{n,m} | {n,m}? | {n,m}+ | 至少出现n次但不超过m次 |
{n,} | {n,}? | {n,}+ | 至少出现n次 |
另外:还有一些复杂模式:如分组,反向应用,候选,非捕获性分组,前瞻,边界,多行模式等
相关文章推荐
- JavaScript基础语法---正则表达式
- javascript 正则表达式基础
- javascript基础集锦_正则表达式(七)
- javascript正则表达式基础相关
- JavaScript 实现基础 正则表达式
- Javascript之正则表达式基础
- JavaScript RegExp 正则表达式基础详谈
- javaScript基础(八)正则表达式
- javascript中正则表达式的基础语法
- javascript 正则表达式入门基础—由浅入深
- JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
- 【JavaScript 5—基础知识点】:正则表达式(笔记)
- javascript基础(正则表达式)(二十四)
- javascript基础-正则表达式
- JavaScript 实现基础--正则表达式--
- Javascript正则表达式基础
- javascript 正则表达式基础知识汇总
- javaScript中的一些 正则表达式 的基础知识。
- javascript正则表达式基础知识入门
- JavaScript之基础-10 JavaScript 正则表达式(概述、定义正则、RegExp对象、用于模式匹配的String方法)