add:正则表达式举例
This commit is contained in:
parent
0b021571dd
commit
bf3316d097
@ -577,3 +577,7 @@ css颜色高亮显示。
|
|||||||
|
|
||||||
同时,你也可以关注我在 GitHub 上的 [前端入门项目](https://github.com/qianguyihao/Web),超级详细和真诚。
|
同时,你也可以关注我在 GitHub 上的 [前端入门项目](https://github.com/qianguyihao/Web),超级详细和真诚。
|
||||||
|
|
||||||
|
## 参考链接
|
||||||
|
|
||||||
|
「Vscode」打造类sublime的高颜值编辑器:https://idoubi.cc/2019/07/08/vscode-sublime-theme/
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
|
|
||||||
上面这两行代码的作用是等价的。
|
上面这两行代码的作用是等价的。
|
||||||
|
|
||||||
## 正则表达式的常见语法
|
## 正则表达式的简单语法
|
||||||
|
|
||||||
### 检查一个字符串中是否包含 a或b
|
### 检查一个字符串中是否包含 a或b
|
||||||
|
|
||||||
@ -159,7 +159,7 @@
|
|||||||
举例1:
|
举例1:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var reg = /[^ab]/; // 规则:字符串中,除了a、b之外,还有没有其他的字符内容
|
var reg = /[^ab]/; // 规则:字符串中,除了a、b之外,还有没有其他的字符内容?
|
||||||
var str = "acb";
|
var str = "acb";
|
||||||
|
|
||||||
console.log(reg.test(str)); // 打印结果:true
|
console.log(reg.test(str)); // 打印结果:true
|
||||||
@ -168,7 +168,7 @@
|
|||||||
举例2:(可以用来验证某字符串是否为 纯数字)
|
举例2:(可以用来验证某字符串是否为 纯数字)
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var reg = /[^0-9]/; // 规则:字符串中,除了数字之外,还有没有其他的内容
|
var reg = /[^0-9]/; // 规则:字符串中,除了数字之外,还有没有其他的内容?
|
||||||
var str1 = "1991";
|
var str1 = "1991";
|
||||||
var str2 = "199a1";
|
var str2 = "199a1";
|
||||||
|
|
||||||
@ -193,7 +193,7 @@
|
|||||||
|
|
||||||
`split()`:将一个字符串拆分成一个数组。
|
`split()`:将一个字符串拆分成一个数组。
|
||||||
|
|
||||||
备注:关于`split()`更详细的用法,可以看之前的关于"内置对象:String"的文章。
|
备注:关于`split()`更详细的用法,可以看之前的关于《内置对象:String》这篇文章。
|
||||||
|
|
||||||
`split()`方法可以接受一个正则表达式作为参数。
|
`split()`方法可以接受一个正则表达式作为参数。
|
||||||
|
|
||||||
@ -236,9 +236,9 @@
|
|||||||
|
|
||||||
`match()`:根据正则表达式,从一个字符串中将符合条件的内容提取出来,封装到一个数组中返回(即使只查询到一个结果)。
|
`match()`:根据正则表达式,从一个字符串中将符合条件的内容提取出来,封装到一个数组中返回(即使只查询到一个结果)。
|
||||||
|
|
||||||
**注意**:默认情况下,`match()`方法只会找到**第一个**符合要求的内容,找到以后就停止检索。我们可以设置正则表达式为**全局匹配**模式,这样就会匹配到所有的内容。
|
**注意**:默认情况下,`match()`方法只会找到**第一个**符合要求的内容,找到以后就停止检索。我们可以设置正则表达式为**全局匹配**模式,这样就会匹配到所有的内容,并以**数组**的形式返回。
|
||||||
|
|
||||||
另外,我们可以为一个正则表达式设置多个匹配模式,且顺序无所谓。
|
另外,我们可以为一个正则表达式设置多个匹配模式,且匹配模式的顺序无所谓。
|
||||||
|
|
||||||
**代码举例**:
|
**代码举例**:
|
||||||
|
|
||||||
@ -246,8 +246,8 @@
|
|||||||
var str = "1a2a3a4a5e6f7A8B9C";
|
var str = "1a2a3a4a5e6f7A8B9C";
|
||||||
|
|
||||||
var result1 = str.match(/[a-z]/); // 找到符合要求的第一个内容,然后返回
|
var result1 = str.match(/[a-z]/); // 找到符合要求的第一个内容,然后返回
|
||||||
var result2 = str.match(/[a-z]/g); // 设置为“全局匹配”模式,匹配字符串中所有的内容
|
var result2 = str.match(/[a-z]/g); // 设置为“全局匹配”模式,匹配字符串中 所有的小写字母
|
||||||
var result3 = str.match(/[a-z]/gi); // 设置多个匹配模式,且顺序无所谓
|
var result3 = str.match(/[a-z]/gi); // 设置多个匹配模式,匹配字符串中 所有的字母(忽略大小写)
|
||||||
|
|
||||||
console.log(result1); // 打印结果:["a"]
|
console.log(result1); // 打印结果:["a"]
|
||||||
console.log(result2); // 打印结果:["a", "a", "a", "a", "e", "f"]
|
console.log(result2); // 打印结果:["a", "a", "a", "a", "e", "f"]
|
||||||
@ -262,7 +262,6 @@ match()这个方法还是很实用的,可以在一个很长的字符串中,
|
|||||||
|
|
||||||
`replace()`:将字符串中的指定内容,替换为新的内容并返回。不会修改原字符串。
|
`replace()`:将字符串中的指定内容,替换为新的内容并返回。不会修改原字符串。
|
||||||
|
|
||||||
|
|
||||||
语法:
|
语法:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -275,7 +274,6 @@ match()这个方法还是很实用的,可以在一个很长的字符串中,
|
|||||||
|
|
||||||
- 新的内容:默认只会替换第一个。如果需要替换全部符合条件的内容,可以设置正则表达式为**全局匹配**模式。
|
- 新的内容:默认只会替换第一个。如果需要替换全部符合条件的内容,可以设置正则表达式为**全局匹配**模式。
|
||||||
|
|
||||||
|
|
||||||
代码举例:
|
代码举例:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -287,4 +285,53 @@ match()这个方法还是很实用的,可以在一个很长的字符串中,
|
|||||||
console.log(str2.replace(/today/gi,"tomorrow")); //这里用到了正则,且为“全局匹配”模式,才能替换所有的today
|
console.log(str2.replace(/today/gi,"tomorrow")); //这里用到了正则,且为“全局匹配”模式,才能替换所有的today
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 常见正则表达式举例
|
||||||
|
|
||||||
|
### 检查一个字符串是否是一个合法手机号
|
||||||
|
|
||||||
|
手机号的规则:
|
||||||
|
|
||||||
|
- 以1开头
|
||||||
|
|
||||||
|
- 第二位是3~9之间任意数字
|
||||||
|
|
||||||
|
- 三位以后任意9位数字
|
||||||
|
|
||||||
|
正则实现:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var phoneStr = "13067890123";
|
||||||
|
|
||||||
|
var phoneReg = /^1[3-9][0-9]{9}$/;
|
||||||
|
|
||||||
|
console.log(phoneReg.test(phoneStr));
|
||||||
|
```
|
||||||
|
|
||||||
|
**备注**:如果在正则表达式中同时使用`^`和`$`符号,则要求字符串必须完全符合正则表达式。
|
||||||
|
|
||||||
|
### 去掉字符串开头和结尾的空格
|
||||||
|
|
||||||
|
正则实现:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
str = str.replace(/^\s*|\s*$/g,"");
|
||||||
|
```
|
||||||
|
|
||||||
|
解释如下:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
str = str.replace(/^\s*/, ""); //去除开头的空格
|
||||||
|
|
||||||
|
str = str.replace(/\s*$/, ""); //去除结尾的空格
|
||||||
|
```
|
||||||
|
|
||||||
|
## 我的公众号
|
||||||
|
|
||||||
|
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
|
||||||
|
|
||||||
|
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
||||||
|
|
||||||
|
![](http://img.smyhvae.com/20190101.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user