diff --git a/03-JavaScript基础/22-正则表达式.md b/03-JavaScript基础/22-正则表达式.md index 969fd4e..f40c96c 100644 --- a/03-JavaScript基础/22-正则表达式.md +++ b/03-JavaScript基础/22-正则表达式.md @@ -9,7 +9,7 @@ ## 创建正则表达式的对象 -### 方式一:使用构造函数创建 +### 方式一:使用构造函数创建正则表达式的对象 语法: @@ -57,9 +57,9 @@ myReg.test(str); // 判断字符串 str 是否符合 指定的 myReg 这个正则表达式的规则 ``` -解释:使用`test()`这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false。 +解释:使用`test()`这个方法可以用来检查一个字符串是否符合正则表达式的规则,**如果符合则返回true,否则返回false**。 -**2、传两个参数时**:匹配模式 +**2、传两个参数时**:匹配模式 【重要】 构造函数 RegExp 中,也可以传两个参数。我们可以传递一个**匹配模式**作为第二个参数。这个参数可以是: @@ -76,7 +76,7 @@ console.log(reg.test(str)); // 打印结果:true ``` -### 方式二:使用字面量 +### 方式二:使用字面量创建正则表达式 我们可以使用字面量来创建正则表达式。 @@ -88,15 +88,17 @@ var 变量 = /正则表达式/匹配模式; // 注意,这个语法里没有引号 ``` -语法举例: +代码举例: ```javascript - var reg = new RegExp("a", "i"); // 方式一 + var reg = /A/i; // 定义正则表达式的规则:检查一个字符串中是否含有 a。忽略大小写。 + var str = "qiangu"; - var reg = /a/i; // 方式二 + console.log(typeof reg); // 打印结果:object + console.log(reg.test(str)); // 打印结果:true ``` -上面这两行代码的作用是等价的。 +### 两种方式的对比 **以上两种方式的对比**: @@ -107,13 +109,13 @@ 代码举例: ```javascript - var reg = /A/i; // 定义正则表达式的规则 - var str = "qiangu"; + var reg = new RegExp("a", "i"); // 方式一 - console.log(typeof reg); // 打印结果:object - console.log(reg.test(str)); // 打印结果:true + var reg = /a/i; // 方式二 ``` +上面这两行代码的作用是等价的。 + ## 正则表达式的常见语法 ### 检查一个字符串中是否包含 a或b @@ -178,26 +180,31 @@ String对象的如下方法,是支持正则表达式的: - | 方法 | 描述 | 备注 | |:-------------|:-------------|:-------------| | split() | 将字符串拆分成数组 | | -| search() | 搜索字符串中是否含有指定内容 | | -| match() | 根据正则表达式,从一个字符串中将符合条件的内容提取出来 | | -| | | | +| search() | 搜索字符串中是否含有指定内容,返回索引index | | +| match() | 根据正则表达式,从一个字符串中将符合条件的内容提取出来 | | +| replace() | 将字符串中的指定内容,替换为新的内容并返回 | | -下面来分别举例。 +下面来分别介绍和举例。 ### split() -**举例**:根据任意字母,将字符串拆分成数组。 +`split()`:将一个字符串拆分成一个数组。 + +备注:关于`split()`更详细的用法,可以看之前的关于"内置对象:String"的文章。 + +`search()`方法可以接受一个正则表达式作为参数。 + +**正则相关的举例**:根据任意字母,将字符串拆分成数组。 代码实现:(通过正则) ```javascript var str = "1a2b3c4d5e6f7g"; - var result = str.split(/[A-z]/); + var result = str.split(/[A-z]/); // 参数是一个正则表达式:表示所有字符 console.log(result); ``` @@ -251,7 +258,7 @@ match()这个方法还是很实用的,可以在一个很长的字符串中,提取出**有规则**的内容。这不就是爬虫的时候经常会遇到的场景么? -### replace +### replace() `replace()`:将字符串中的指定内容,替换为新的内容并返回。不会修改原字符串。 @@ -268,7 +275,6 @@ match()这个方法还是很实用的,可以在一个很长的字符串中, - 新的内容:默认只会替换第一个。如果需要替换全部符合条件的内容,可以设置正则表达式为**全局匹配**模式。 -代码举例: 代码举例: