简介
先来一段引见:
正则表达式,又称正规示意法、通例示意法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个观点。正则表达式运用单个字符串来形貌、婚配一系列相符某个句法划定规矩的字符串。在许多文本编辑器里,正则表达式通常被用来检索、替代那些相符某个形式的文本。
简朴说就是:
它是对字符串实行形式婚配的壮大东西。
Javascript中的正则表达式相较于其他言语来讲完成的并不完全,但仍然是非常壮大的,能够协助我们完成绝大多数形式婚配使命。下面将一步一步细致引见。
定义
在Javascript中,定义一个正则表达式有两种体式格局,一种是直接量,另一种是运用组织函数。
直接量
Javascript能够运用相似Perl的语法定义一个正则表达式
var r = /pattern/flags;
个中pattern
是任何简朴或庞杂的正则表达式,flags是用以表达正则表达式行动的一个或许多个标识。
flags
- g 示意全局(global)形式,即形式将被应用于一切字符串
- i 示意不辨别大小写
- m 多行形式
来看几个例子
var r1 = /at/g; // 婚配字符串中一切'at'的实例
var r2 = /.ho/gi; // 婚配以'ho'末端的三个字符的组合,不辨别大小写
运用组织函数
Javascript中正则表达式的组织函数为RegExp,即Regular Expression
的缩写,它吸收两个参数,第一个为要婚配的字符串形式,另一个是可选的标识位。
如:
var r = new RegExp('hello', 'g'); // 婚配字符串中一切的'hello'实例
有一点肯定要注意,第一个参数是一个字符串,而不是正则表达式的直接量。
元字符
在正则表达式的形式中,有一些字符是有特别寄义的,被称为元字符
,假如要婚配元字符,则必需对其举行转义。
这些元字符分别是:
( [ { \ ^ $ | ) ? * + . ] }
比方:
// 假如要婚配'/user/name'这个字符串,正则表达式须要如许
var r1 = /\/user\/name/;
var r2 = /\.ho/; // 婚配'.ho'这个字符串
关于运用组织函数定义
假如运用组织函数定义正则表达式,因为组织函数的第一个参数必需是一个字符串,在婚配元字符时,这将会致使两重转义。
比方:
var r1 = new RegExp('\/user', 'g'); // wrong
// 因为\在字符串中须要转义为\\,所以,假如要婚配/user,正则表达式须要写为
var r1 = new RegExp('\\/user', 'g');
一切元字符都须要举行两重转义
别的,另有一些预定义的特别字符也被称为元字符
元字符 | 形貌 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
\w | 查找单词字符。 |
\W | 查找非单词字符。 |
\d | 查找数字。 |
\D | 查找非数字字符。 |
\s | 查找空缺字符。 |
\S | 查找非空缺字符。 |
\b | 婚配单词边境。 |
\B | 婚配非单词边境。 |
\0 | 查找 NUL 字符。 |
\n | 查找换行符。 |
\f | 查找换页符。 |
\r | 查找回车符。 |
\t | 查找制表符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八进制数 xxx 划定的字符。 |
\xdd | 查找以十六进制数 dd 划定的字符。 |
\uxxxx | 查找以十六进制数 xxxx 划定的 Unicode 字符。 |
有一点须要特别注意:不论一个元字符代表若干种寄义,单个元字符一直只婚配单个字符
元字符实在没必要锐意花时间去影象,等了解了悉数的正则表达式运用方法以后,天然就晓得哪些字符是有特别寄义的,也就晓得了哪些时刻须要转义了。
下面将连续引见正则表达式的运用方法。