美文网首页
2017.11.09正则表达式

2017.11.09正则表达式

作者: Cyril丶 | 来源:发表于2017-11-09 20:47 被阅读0次

    垃圾回收

    垃圾回收机制:内存泄漏

    垃圾回收/生命周期

    局部:很短——函数执行完毕局部变量会回收
    全局:很长——页面关闭之后全局变量会回收
    闭包:可长可短——当里面的函数还有用时,整条作用域链上的变量都不会消失
    作用域链:先在当前函数找,如果找不到就找父级函数,一级一级往上找,知道找到全局
    

    正则表达式(规则表达式)

    Regular Expression:操作字符串的

    怎么用正则 new RegExp('正则','选项');

    选项 i=Ignore:忽略:忽略大小写

    转义

    \                    
    \d                    所有数字
    \t                     一个制表符
    \n                    换行
    

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

    正则特性

    1 懒 选项 g=global 全局的
    2 笨 量词 5个梨   梨{5}
      模糊 (若干)    梨+
    3 贪婪
    

    敏感词汇过滤

    str.replace(要替换的,替换成谁)
    /第一个|第二个/
    str.replace(str|re,str|fn);
    

    小说格式修理

    行首:^
    行尾:$
    默认是单行模式
    多行模式:选项 m       muti-line:多行模式
    

    []

    任选一个
    /a[abc]c/
    /a[abc]+c/
    /abc+/
    
    范围
    /[0-9]/                    所有数字
    /[a-z]/                    所有小写字母
    /[A-Z]/                   所有大写字母
    /[0-9a-zA-Z]/         所有数字和英文字母
    /a(bc)+/
    
    排除
    /[^0-9]/             除了数字
    /[^a-z]/             除了小写字母
    /[^A-Z]/            除了大写字母  
    /[^0-9a-zA-Z]/  除了数字和字母         
    /abc\-123/
    
    量词
    {n}              n个
    {n,m}          最少n个,最多m个
    {n,}             最少n个,做多不限
    ?            {0,1} 出现一次或者不出现
    +             {1,}  最少出现一次
    *              {0,}出现几次都可以,随意
    
    转义
    \d           [0-9]               所有数字
    \w          [a-zA-Z0-9_]  所有数字和英文_
    \s                                 所有空白符号
    \D          [^0-9]             除了所有数字
    \W         [^0-9a-zA-Z_]除了所有英文和数字_
    \S'                               除了所有空白符号
    .                                  所有字符
    \.                                 正常的字符串
    

    方法

    搜索:str.search(re)
    匹配:str.match(re)
    替换:str.replace(str|re,str|fn)
    校验:re.test(str)
    

    校验的时候必须加行首和行尾
    分段效验

    邮箱
    名字     \w+
    @            \@
    域名      [0-9a-zA-Z\-]+
    域名后缀(\.[a-zA-Z]{2,6}){1,2}
    /^\w+\@[0-9a-zA-Z\-]+(\.[a-zA-Z]{2,6}){1,2}$/
    /^\w+\@[a-zA-Z0-9\-]+(\.[a-zA-Z]{2,6}){1,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}$/
    /^0[1-9]\d{1,2}\-[1-9]{6,7}$/
    
    手机号
    /^1[34578]\d{9}$/
    /^1[34578]\d{9}$/
    
    年龄
    189     1[89]
    20-99  [2,9]\d
    100    100
    /^(1[89]|[2,9]\d|100)$/    
    /^(1[89]|[2-9]\d|100)$/  
    
    身份证
    第一位不是0             [1,9] \d{14,17}\d\x
    15或18位                 
    最后一位可以是X      
    
    

    相关文章

      网友评论

          本文标题:2017.11.09正则表达式

          本文链接:https://www.haomeiwen.com/subject/vbemmxtx.html