# 正则表达式
1. 元字符
. 查找单个字符,除了换行和行结束符
\s Space 查找空白字符
\d 查找数字字符
\w 查找单词字符
\b 查找单词边界
2. 字符范围
~表示开头字符
$表示结尾字符
^表示范围外的字符
[abc] 任意字符
[A-z] 大小写所有字母
- 匹配 0 或多个正好在它之前的那个字符。\*意味着能够匹配任意数量的任何字符。
? 表示懒惰模式,必匹配第一个之后就结束匹配
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 用法 .*是指任何字符 0 个或多个, .?是指任何字符 0 个或 1 个.
.具有贪婪的性质,首先匹配到不能匹配为止,根据后面的正则表达式,会进行回溯。 .?则相反,一个匹配以后,就往下进行,所以不会进行回溯,具有最小匹配的性质。 示例
- 匹配连续字符串
var a = "ssssfffgeretg ggddftt112233";
let res = a.match(/(\S)(\1)+/g);
1
2
2
- 模仿 Vue 中模板字符
// let moudleString = '我是{{name}}, 今年{{age}}岁'
// let info = {
// name: 'wabi',
// age: 22
// }
moudleString.replace(/{{(.*?)}}/g, (val, index) => `${info[index]}`);
1
2
3
4
5
6
2
3
4
5
6