垃圾回收机制、正则

前言:

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

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

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

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]$/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供...
    简欲明心阅读 89,892评论 17 311
  • 定义 概念学习是指从有关某个布尔函数的输入输出训练样例中,推断出该布尔函数 任务描述 实例集合(X) 实例集合上的...
    地里蒜头阅读 852评论 0 0
  • 《午后》 麦子融为黄金 大地哗地豁开一道口子 驴子颠着碎步 斜乜虚脱的日头 牧笛婉转出丝丝甜味儿 不知原委 壮硕的...
    花与俗阅读 179评论 0 0
  • 体验才是最好的效果。 打游戏、睡觉和陪孩子,哪个更重要? 当然是后者。 我记得,昆到外婆家看女儿,女儿蔚高兴地嚷着...
    曼季风阅读 195评论 0 0