JavaScript中的正则表达式
2015-05-25 20:56
127 查看
JavaScript正则表达式
正则表达式是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,string和RegExp都定义了方法,RegExp使用正则表达式进行强大的模式匹配和文本检索与替换功能。RegExp对象更多是通过一种特殊的直接量语法来创建。正则表达式直接量定义为包含在一对斜杠(/)之间的字符。定义列表
直接量字符字符类
特殊含义字符
普通字符
重复字符
选择、分组、引用
修饰符
用于模式匹配的String方法
search()
replace()
match()
split()
RegExp的属性方法
属性
方法
1、直接量字符
字符 | 匹配 |
---|---|
字母和数字字符 | 字母和数字字符本身 |
\o | NUL字符(\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。相关文章推荐
- MySpace.cn 使用的Javascript验证正则表达式
- JavaScript验证正则表达式
- JavaScript中的正则表达式
- 盘点javascript 正则表达式中 中括号的【坑】
- ASP.NET中服务器控件Button调用javascript代码运用正则表达式验证TextBox中输入的是否为正整数或正小数,符合要求则继续运行服务器端代码功能的实现
- 好好学一遍JavaScript 笔记(五)——正则表达式基础
- javascript正则表达式分析第1/2页
- Javascript 正则表达式笔记2
- javascript 中的正则表达式
- javascript正则表达式笔记
- JavaScript正则表达式19例(9)
- 高性能Javascript【四】算法和流程控制高性能Javascript【五】字符串和正则表达式
- 常用的JavaScript验证正则表达式
- 如何实现正则表达式的JavaScript的代码高亮
- JavaScript正则表达式使用详解
- 深入浅出的javascript的正则表达式学习教程
- Javascript 与正则表达式
- 温故知新 javascript 正则表达式
- Javascript中的正则表达式
- Javascript 正则表达式-对象与方法