e 1 年間 前
コミット
6edd5dcbdb

+ 0 - 1
正则/3.元字符-边界符.html

@@ -11,7 +11,6 @@
       var reg = /\ban\b/gi;
       var str1 = "an Cat,is An animal";
       console.log(str1.match(reg));
-
     // 2.匹配字母首行 ^
     var reg = /^ab/
     console.log(reg.test("aabab"));

+ 16 - 17
正则/5.元字符-字符类.html

@@ -8,31 +8,30 @@
 <body>
     <script>
         // [] 任意匹配
-        const reg = /[abc]/;
-        console.log(reg.test("ababab"));
-        console.log(reg.test("abc"));
-        console.log(reg.test("acbacb"));
-        console.log(reg.test("acacac"));
-        console.log(reg.test("dfdfdfd"));
+        // const reg = /[abc]/;
+        // console.log(reg.test("ababab"));
+        // console.log(reg.test("abc"));
+        // console.log(reg.test("acbacb"));
+        // console.log(reg.test("acacac"));
+        // console.log(reg.test("dfdfdfd"));
 
         // 连字符 -
-        const reg1 = /0-9/;//匹配数字
-        const reg2 = /a-z/;//匹配小写英文字母
-        const reg3 = /A-Z/;//匹配大写英文字母
-        const reg4 = /a-zA-Z0-9_/; //匹配英文字母+数字+下划线
+        // const reg1 = /0-9/;//匹配数字
+        // const reg2 = /a-z/;//匹配小写英文字母
+        // const reg3 = /A-Z/;//匹配大写英文字母
+        // const reg4 = /a-zA-Z0-9_/; //匹配英文字母+数字+下划线
 
         // ^ 取反
-        // const reg6 = /[^0-9]/;
         const reg6 = /\d/;
         console.log(reg6.test("aaa"));
 
         // . 除换行以外的任意字符
-        const reg7 = /./;
-        console.log(reg7.test("aaa"));
-        console.log(reg7.test("1234567890"));
-        console.log(reg7.test(""));// false
-        console.log(reg7.test("\n"));
-        console.log(reg7.test("\r"));
+        // const reg7 = /./;
+        // console.log(reg7.test("aaa"));
+        // console.log(reg7.test("1234567890"));
+        // console.log(reg7.test(""));// false
+        // console.log(reg7.test("\n"));
+        // console.log(reg7.test("\r"));
     </script>
 </body>
 </html>

+ 1 - 0
正则/7.案例.html

@@ -26,6 +26,7 @@
         console.log(reg4.test("12:36"))
         console.log(reg4.test("20:12"))
         console.log(reg4.test("24:00"))
+        
     </script>
 </body>
 </html>

+ 61 - 0
正则/晚课/4.元字符-量词.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        // * 0次或多次
+        // const reg = /a*a$/;
+        // console.log(reg.test('aa'))
+        // console.log(reg.test('aba'))
+        // console.log(reg.test('ab'))
+        // console.log(reg.test(''))
+
+        // // + 1次或多次
+        // const reg = /a+$/;
+        // console.log(reg.test('aa'))
+        // console.log(reg.test('aba'))
+        // console.log(reg.test('bddadd'))
+        // console.log(reg.test(''))
+
+        // // ? 0次或一次
+        // const reg = /a?$/;
+        // console.log(reg.test('aa'))
+        // console.log(reg.test('aba'))
+        // console.log(reg.test('bddadd'))
+        // console.log(reg.test(''))
+
+        // {n} n次
+        // const reg = /a{2}$/;
+        // console.log(reg.test('aa'))
+        // console.log(reg.test('aba'))
+        // console.log(reg.test('bddadd'))
+        // console.log(reg.test(''))
+
+        // {n,} n次或更多次
+        // const reg = /a{2,}$/;
+        // console.log(reg.test('aa'))
+        // console.log(reg.test('aba'))
+        // console.log(reg.test('bddadd'))
+        // console.log(reg.test(''))
+        // console.log(reg.test('aacchda'))
+        // console.log(reg.test('aaccaaaa'))
+        // console.log(reg.test('cac'))
+
+        // {n,m} n-m次
+        const reg = /a{1,3}$/;
+        console.log(reg.test('aa'))
+        console.log(reg.test('aba'))
+        console.log(reg.test('bddadd'))
+        console.log(reg.test(''))
+        console.log(reg.test('aacchda'))
+        console.log(reg.test('aaccaaaa'))
+        console.log(reg.test('cac'))
+        
+
+    </script>
+</body>
+</html>

+ 38 - 0
正则/晚课/5.元字符-字符类.html

@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        // [] 任意匹配
+        var reg = /[abc]/;
+        console.log(reg.test("abc"));
+        console.log(reg.test("acd"));
+        console.log(reg.test("aiu"));
+        console.log(reg.test("cud"));
+        console.log(reg.test("bhd"));
+        console.log(reg.test("uul"));
+        // - 连字符
+        const reg1 = /a-z/;//匹配小写26个字母
+        const reg2 = /A-Z/;//匹配大写26个字母
+        const reg3 = /0-9/;//匹配数字
+        const reg4 = /a-zA-Z0-9_/;//匹配密码:英文+数字+_
+        // ^ 取反 不在范围内
+        const reg5 = /[^0-9]/;
+        console.log(reg5.test('0909'));
+        console.log(reg5.test('aaa'));
+        // . 除换行符外的任意字符
+        // 换行符 \n \r
+        const reg6 = /./;
+        console.log(reg6.test("aaa"));
+        console.log(reg6.test(""));// 空字符串是false
+        console.log(reg6.test("1124"));
+        console.log(reg6.test("\n"));
+        console.log(reg6.test("??"));
+        console.log(reg6.test("\r"));
+    </script>
+</body>
+</html>

+ 33 - 0
正则/晚课/6.分组.html

@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        // 分组 ()
+        const reg = /(ab)b/;
+        console.log(reg.test('babb'));
+        console.log(reg.test('baabb'));
+        // 分组捕获 $1 $2 $3
+        const data = '2024-04-17';
+        const reg1 = /^(\d{4})-(\d{2})-(\d{2})$/
+        // const reg1 = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/
+        console.log(reg1.test(data));
+        // 04/17/2024
+        console.log(data.replace(reg1,'$2~$3~$1'))
+        // 分支结构
+        var str1 = '西游记';
+        var str2 = '红楼梦';
+        var str3 = '三国演义';
+        var str4 = '水浒传';
+        var reg2 = /西游记|红楼梦/;
+        console.log(reg2.test(str1));
+        console.log(reg2.test(str2));
+        console.log(reg2.test(str3));
+        console.log(reg2.test(str4));
+    </script>
+</body>
+</html>

+ 16 - 0
正则/晚课/7.案例.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <script>
+        // 1.手机号脱敏 13789430987 => 137****0987
+        // 2.密码匹配 (6-16字母、数字、下划线)
+        // 3.匹配16进制颜色 #ff0000 #0f0
+        // 4.匹配24小时时间 23:59 20:12 08:35 18:22
+    </script>
+</body>
+</html>

+ 8 - 0
正则/晚课/笔记.md

@@ -8,3 +8,11 @@
 ### 修饰符
 i 匹配时不分大小写
 g 匹配全局
+
+### 元字符
+1. 边界符
+2. 量词
+3. 字符类
+4. 预定义
+
+### 分组