1. 概述
正则表达式用于定义一些字符串的规则。计算机可以根据正则表达式,来检测一个字符串是否符合规则。
(比如邮件的规则)
2. 使用
2.1 创建正则表达式对象
构造函数创建语法: var reg = new RegExp("正则表达式", "匹配模式");
字面量创建语法: var 变量 = /正则表达式/匹配模式
参数说明:
(1)正则表达式
:使用typeof检查正则对象,会返回object
(2)匹配模式
:① i → 忽略大小写;② g → 全局匹配模式,即查找所有匹配而非在找到第一个匹配后停止。
正则表达式的方法: test()
——使用该方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false
例子:
var reg = new RegExp("ab", 'i');
console.log(reg.test("abc")); //true
console.log(reg.test("Ac")); //false
2.2 一些符号
符号 | 描述 | 例子 |
---|---|---|
| | 或 | /a|b/ 表示 a或b |
[] | 或 | [ab] 表示 a或b |
[a-z] 表示 任意的小写字母 | ||
[^ ] | 除了 | /[^ab]/ 表示 除了ab以外的 |
2.3 字符串和正则相关的方法
方法 | 描述 |
---|---|
search | 检索与正则表达式相匹配的值,返回索引 |
match | 找到一个或多个正则表达式的匹配 |
replace | 替换与正则表达式匹配的字符串 |
split | 把字符串分割成字符串数组 |
2.4 量词
通过量词可以设置一个内容出现的次数
(1){n}
:正好出现n次。如:/a{3}/
(2){m,n}
:出现m到n次。如:/a{1,3}/
(3){m,}
:出现m次以上。如:/a{3,}/
(4)+
:至少一个,相当于{1,}
。如:/a+/
(5)*
:0个或多个,相当于{0,}
。如:/ca*b/
(6)?
:0个或1个,相当于{0,1}
。如:/a?/
2.5 开头和结尾
(1)^
:表示开头。如:/^a/ → 表示以a开头
(2)$
:表示结尾。如:/a$/ → 表示以a结尾
2.6 元字符
(1).
:表示任意字符
(2)\
:转义字符
(3)\w
:任意字母、数字、_
(4)\W
:除了字母、数字、_
(5)\d
:任意数字
(6)\D
:除了数字
(7)\s
:空格
(8)\S
:除了空格
(9)\b
:单词边界
(10)\D
:除了单词边界