垃圾回收机制、正则

前言:

趁年轻去努力,别对不起你儿时吹的牛逼

--------------------------------正文---------------------------------

垃圾回收机制(内存泄露)

1. 局部 (很短)
函数执行完毕,局部变量会回收

  eg:
    function show(){
        var a = 12;
    }
                调用前             没有a
    show();     调用中             有a
                调用后             没有a

2. 全局 (很长)
当页面关闭时,全局变量才会回收

3. 闭包 (可长可短)
1)当里面的函数还有用,函数内的局部变量就不会消失

  eg:
    function show(){
        var a = 12;
        document.onclick = function(){
            alert(a);
        };
    }
                调用前             没有a
    show();     调用中             有a
                调用后             有a

2)当里面的函数还有用,函数内所有的局部变量都不会消失

  eg:
    function show(){
        var a = 12;
        var b = 5;
        document.onclick = function(){
            alert(a);
        };
    }
                调用前             没有a   没有b
    show();     调用中             有a     有b
                调用后             有a     有b

3)当里面的函数还有用,那整条作用域链上的变量都不会消失

  eg:
    var a = 12;
    function show(){
        var b = 5;
        function show2(){
            var c = 3;
            document.onclick = function(){
                alert(b);
            };
        }
        show2();
    }
                调用前             有a    没有b    没有c
    show();     调用中             有a    有b      有c
                调用后             有a    有b      有c

作用域链

  先在当前函数找,如果找不到,找父函数,一层一层往上找,直到找到全局

正则(又叫正则表达式或者规则表达式)Regular Expression

   是操作字符串的
用法:
   new RegExp('正则','选项')

正则的简写:
   /规则/选项

方法(校验的时候,正则必须加行首和行尾)

        str.search(re)                  搜索        // str(字符串) re(正则)
        str.match(re)                   匹配
        str.replace(str|re,str|fn)      替换
        re.test(str)                    校验

正则表达式必用

写法 含义 相同
. 所有字符 ---
\. 正常的字符串. ---
^ 行首 ---
$ 行尾 ---
\ 转义 ---
[ ] 任选一个/范围/排除 ---
( ) 组合 ---
\t 一个制表符 ---
\n 换行 ---
\d 所有数字 [ 0-9 ]
\w 所有英文_数字 [ 0-9a-zA-Z_ ]
\s 所有空白符号 ---
\D 除了所有数字 [ ^0-9 ]
\W 除了英文数字_ [ ^0-9a-zA-Z_ ]
\S 除了空白符号 ---

[ ] 的作用
1、任选一个

    /a[abc]c/                  可以是 aac/abc/acc
    /a[abc]+c/                 aaac/abcc/aabcc 都可以,中间可以有多位
    /abc+/                     abccccccccccc   c是几位都可以

2、范围

   /[0-9]/                   所有数字
   /[a-z]/                   所有小写字母
   /[A-Z]/                   所有大写字母
   /[0-9a-zA-Z]/             所有数字和字母

3、排除(^ 取反)

   /[^0-9]/                  除了数字
   /[^a-zA-Z]/               除了英文字母
   /[^0-9a-zA-Z]/            除了数字和字母

量词

写法 含义 相同
{n} n个 ---
{n,m} 最少n个,最多m个 ---
{n,} 最少n个,最多不限 ---
? 出现一次或者不出现 {0,1}
+ 最少出现一次 {1,}
* 随意 {0,}

正则特性

1.懒
    选项
        i       Ignore      忽略        忽略大小写
        m       muti-line   多行模式               默认是单行模式
        g       global      全局        全局匹配      
2.笨
    量词                       模糊(若干)
        5个梨                      梨+
        梨{5}        
3.贪婪
正则例子

1、邮箱

    名字        英文数字_        \w+
    @                           \@
    域名        英文数字-        [a-zA-Z0-9\-]+
    域名后缀    英文      2-6
                出现1,2次        (\.[a-zA-Z]{2,6}){1,2}

    /^\w+\@[a-zA-Z0-9\-]+(\.[a-zA-Z]{2,6}){1,2}$/

2、座机

    区号:3到4位数字
          第一位一定是0
          第二位一定不是0             0[1-9]\d{1,2}
    -                                \-
    号码:
          第一位不是0
         7到8位数字                  [1-9]{6,7}

    /^0[1-9]\d{1,2}\-[1-9]{6,7}$/

3、手机号

    11位数字:第一位肯定是 1,第二位 3 4 5 7 8
    /^1[34578]\d{9}$/

4、年龄 18-100

    18-19             1[89]
    20-99             [2-9]\d
    100               100
有 | 必须加 ()
    /^(1[89]|[2-9]\d|100)$/

5、身份证

    第一位不是0
    15或18位
    最后一位可以是 x X

     /^[1-9](\d{13}|\d{16})[0-9xX]$/

你可能感兴趣的:(垃圾回收机制、正则)