您的位置:首页 > Web前端 > JavaScript

JavaScript中的正则表达式

2015-05-25 20:56 127 查看

JavaScript正则表达式

正则表达式是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,string和RegExp都定义了方法,RegExp使用正则表达式进行强大的模式匹配和文本检索与替换功能。RegExp对象更多是通过一种特殊的直接量语法来创建。正则表达式直接量定义为包含在一对斜杠(/)之间的字符。

定义列表

直接量字符
字符类
特殊含义字符

普通字符

重复字符

选择、分组、引用

修饰符

用于模式匹配的String方法
search()

replace()

match()

split()

RegExp的属性方法
属性

方法

1、直接量字符

字符匹配
字母和数字字符字母和数字字符本身
\oNUL字符(\u0000)
\t制表符(\u0009)
\n换行符(\u000A)
\v垂直制表符(\u000B)
\f换页符(\u000C)
\r回车符(\u000D)
\xnn由十六进制数nn指定的拉丁字符,例如,\x0A等价于\n
\uxxxx十六进制数xxxx指定的Unicode字符,例如\u0009等价于\t
\cX控制字符^X,例如,cJ等价于换行符\n

2、字符类

1)特殊含义字符

^  $  .  +  ? = ! : | \ / ( ) [ ] { }


2)普通字符类

将直接量字符单独放进方括号内就组成了字符类。


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

3)重复字符

字符含义
{n,m}匹配前一项至少n次,但不能超过m次
{n,}匹配前一项n次或者更多次
{n}匹配前一项n次
?匹配前一项0次或者1次,也就是说前一项是可选的,等价于{0,1}
+匹配前一项1次或多次,等价于{1,}
*匹配前一项0次或多次,等价于{0,}

4)选择、分组、引用

字符含义
|选择,匹配的是该符号左边的字表达式或右边的字表达式
(…)组合,将几个项组合为一个单元,这个单元可通过“*”、“+”、“?”、“
(?:…)只组合,把项组合到一个单元,但不记忆与改组相匹配的字符
\n和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也有可能是嵌套的),组索引是从左导游的左括号数

5)锚字符

字符含义
^匹配字符串的开头,在多行检索中,匹配一行的开头
$匹配字符串的结尾,在多行检索中,匹配一行的结尾
\b匹配一个单词的边界,简言之,就是位于字符\w和\W之间的位置,或位于字符\w和字符串的开头或者结尾之间的位置(但需要注意,[\b]匹配的是退格符)
\B匹配非单词边界的位置
(?=p)零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括p的那些字符
(?!p)零宽负向先行断言,要求接下来的字符不与p匹配

6)修饰符

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

3、用于模式匹配的String方法

String 支持四种使用正则表达式的方法。最简单的是search().

1)search

它的参数是一个正则表达式,返回第一个与之匹配的子串的起始位置,如果找不到匹配的子串,他将返回-1


2)replace

该方法用以执行检索与替换操作。第一个参数是一个正则表达式,第二个参数是要进行替换的字符串。


3)match

match()方法是最常用的string正则表达式方法,他唯一参数就是一个正则表达式,返回的是一个由匹配结果组成的数组。


4)split

用以将调用它的字符串拆分为一个子串组成的数组,使用的分隔符是split()的参数。


4、RegExp对象的属性和方法

正则表达式是通过regexp对象来表示的。regexp()构造函数之外,还支持三个方法和一些属性。regexp构造函数带有两个字符串参数,第二个是可选的,regexp()用以创建新的regexp对象。第一个参数包含正则表达式主体部分。
var zipcode=new RwgExp("\\d{5}","g");


属性

属性名含义
source包含正则表达式的文本
global是否带有修饰符g
ignoreCase是否带有修饰符i
multiline是否带有修饰符m
lastIndex如果匹配模式带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec()和test()方法用到。

方法

RegExp定义了两个用于执行模式匹配的方法,RegExp方法的参数是一个字符串。最主要的执行匹配的方法是exec(),它对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行匹配检索。另一个是test(),他比exec()更简单一些,它的参数是一个字符串,用test()对某个字符串进行检测,如果包含正则表达式的一个匹配结果,则返回true。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: