js正则表达式

正则表达式(regular expression)是一个描述字符模式的对象。javascript的RegExp类表示正则表达式,string和RegExp都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能。javascript的正则表达式,是perl5的正则表达式语法的大型子集。

javascript的正则表达式用RegExp表示,可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多是通过一种特殊的的直接量语法来创建。就像通过引号包裹字符的方式来定义字符串直接量一样,正则表达式直接量定义为包含在一对斜杠(/)之间的字符,例如

  var pattern = /s$/;

运行这段代码创建一个新的RegExp对象,并将它赋值给pattern。用构造函数也可以定义与之等价的正则表达式

var pattern = RegExp("s$");

1. 字符类

{...}   表示方括号内的任意字符
{^...}  表示不在方括号内的任意字符
.       除换行符和其他Unicode行终止符之外的任意字符
\w      任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
\W      任何不是ASCII字符组成的单词,等价于[a-zA-Z0-9]
\s      任何Unicode空白符
\S      任何非Unicode空白符
\d      任何ASCII数字,等价于[0-9]
\D      任何非ASCII数字,等价于[^0-9]
[\b]    退格直接量

2. 重复

{n,m}     匹配前一项至少n次,但不能超过m次
{n,}      匹配前一项n次或更多次
{n}       精确匹配前一项n次
?         匹配前一项0次或者1次,等价于{0,1}
+         匹配前一项1次或更多次,等价于{1,}
*         匹配前一项0次或更多次,等价于{0,}

3. 正则表达式的选择,分组和引用字符

|          选择,匹配的是该符号左边的子表达式或右边的子表达式
(...)      组合,将几项组合为一个单元,这个单元可以通过“*”,“+”,“?”,“|”等符号加以修饰,而且可以记住和这个组合相匹配的字符串以供以后的引用使用
(?:...)    只组合,把项组合到一个单元,但不记忆与该项相匹配的字符
\n         和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也有可能是潜嵌套的),组索引是从左到右的左括号数,“(?:”形式的分组不编码

4. 正则表达式中的锚字符

^       匹配字符串的开头,在多行检索中,匹配一行的开头
$       匹配字符串的结尾,在多行检索中,匹配一行的结尾
\b      匹配一个单词的边界
\B      匹配非单词的边界
(?=p)   零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符
(?!p)   零宽负向先行断言,要求接下来的字符不与p匹配

5. 正则表达式的修饰符

i     执行不区分大小写的匹配  
g     执行一个全局匹配,简言之,即找到所有的匹配,而不是在找到第一个之后就停止
m     多行匹配模式,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。