# 正则表达式

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
  1. 用法 .*是指任何字符 0 个或多个, .?是指任何字符 0 个或 1 个.

.具有贪婪的性质,首先匹配到不能匹配为止,根据后面的正则表达式,会进行回溯。 .?则相反,一个匹配以后,就往下进行,所以不会进行回溯,具有最小匹配的性质。 示例

  1. 匹配连续字符串
var a = "ssssfffgeretg   ggddftt112233";
let res = a.match(/(\S)(\1)+/g);
1
2
  1. 模仿 Vue 中模板字符
// let moudleString = '我是{{name}}, 今年{{age}}岁'
// let info = {
//     name: 'wabi',
//     age: 22
// }
moudleString.replace(/{{(.*?)}}/g, (val, index) => `${info[index]}`);
1
2
3
4
5
6
Last Updated: 6/3/2024, 1:08:34 AM