zoukankan      html  css  js  c++  java
  • 前端学习(三十二)正则(笔记)

    ===========================================
    正则    正则表达式
        Regular Expression
        规则表达式

    正则有两个作用:
        1.操作字符串
        2.校验表单

    操作字符串    
        使用正则操作字符串非常简单,不是必须得用。使用是为了方便
    ============================================
    正则玩的就是规则
        
        itwenqiang@sina.com

        137-1807-9033

        010-4334567

        北京市朝阳区建外SOHO东区 7304室
    ========================================
    玩正则
        var re = new RegExp('规则');

        str.search(re);


        var re = new RegExp('规则','选项');
            i         Ignore         忽略
            忽略大小写

        简写
            var re = /规则/选项;

        转义
                         转义
                         换行
                         tab     制表符

            \            
        正则中的转义
            d             0到9的数字

    ===========================================
        匹配所有数字
            str.match(re)

        正则的特性:
            1.懒
                选项:
                    g         global
                    全局匹配
            2.笨
                量词:
                    5个梨
                    梨{5}

                    若干
                    梨+     最少1个,最多不限
            3.贪婪
                尽可能的多拿
    ==========================================
    敏感词汇过滤
        str.replace()         不用正则配合很弱

        str.replace(str,str);

        str.replace(str|re,str);

        str.replace(/北京|斯达/,'***');

        str.replace(str|re,str|fn);
    ==========================================
    修饰
        ^         行首
        $         行尾
    ==========================================
    手机小说格式整理

    选项
        m             muti-line
            多行模式

        单行模式(默认)
        多行模式             m
    ========================================
        选项
            i         Ignore         忽略大小写
            m         Muti-line     多行模式
            g         Global         全局匹配

        []
            任选一个
            /a[abc]c/             
            aac             √
            abc             √
            acc             √
            aabcc             ×
            
            范围
            /[0-9]/         所有数字
            /[a-z]/         所有小写英文字母
            /[A-Z]/         所有大写英文字母
            /[0-9a-zA-Z]/     所有数字英文字母
            /0-z/             ×

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



        /ab+/
        abbbbbbbbbbb         √
        abababababab         ×

        /(ab)+/
        abababababab        √
        abababababa         ×

        量词
            {n}         出现n次
            {n,m}         最少n个,最多m个
            {n,}         最少n个,最多不限

            ?     {0,1}     出现1次,或者不出现
            *     {0,}     出不出现都可以多少随意
            +     {1,}     最少1次,最多不限

        转义
            d     /[0-9]/     所有数字
            w     /[a-zA-Z0-9_]/      所有英文数字_
            s                 所有空白符号

            D     /[^0-9]/     除了数字
            W     /[^0-9a-zA-Z_]/    除了数字英文_
            S                 除了所有空白符号

            .                 所有字符
            .                字符串.
        方法
            str.search(re)
            str.match(re)
    =======================================
    表单校验
        re.test(str);
        注意表单校验的正则必须加行首和行尾
        座机校验
        010-5323563

        区号    
            3-4位的数字     
            第一位一定是0
            第二位一定不是0
            0[1-9]d{1,2}

        -    
            -
        号码
            7-8位的数字
            第一位一定不是0
            [1-9]d{6,7}

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

        邮箱校验
        itwenqiang @ sina .com
        itwenqiang @ sina .com.cn

        名字
            英文数字_
            w+
        @
            @
        域名
            英文数字-
            [a-zA-Z0-9-]+

        域名后缀
            .     2-8位字母         可以出现1-2次

            (.[a-zA-Z]{2,8}){1,2}

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

        年龄校验
            18到100

            18 19
                1[89]
            20-99
                [2-9]d
            100
                100

            /^(1[89]|[2-9]d|100)$/
        手机号
            11位数字
            第一位一定是1
            /^1[34578]d{9}$/

        身份证号
            15或18位
            最后一位有可能是x
            第一位一定不是0
            /^[1-9]d{13}(d|d{2}[0-9x])$/i
    ========================================
    操作字符串
        去掉行首行尾空格
        var str = '    on box      ';
        a).
            var arr = str.match(/s+/g);
            str = arr.join(' ');
        b).
            str = str.replace(/^s+|s+$/g,'');

        //中间多个空格替换成一个空格
        var str = 'on     box    active';
        str = str.replace(/s+/g,' ');

        //中间多个空格换成一个,首尾空格去掉
        var str = '   on  box   active    ';
        str = str.replace(/^s+|s+$/g,'').replace(/s+/g,' ');

    ==========================================
    邮箱
    /^w+@[a-z0-9-]+(.[a-z]{2,8}){1,2}$/i
    年龄     18-100
    /^(1[89]|[2-9]d|100)$/
    座机
    /^0[1-9]d{1,2}-[1-9]d{6,7}$/
    手机
    /^1[34578]d{9}$/
    身份证
    /^[1-9]d{13}(d|d{2}[0-9x])$/i

    ============================================

  • 相关阅读:
    《深度解析Tomcat》 第一章 一个简单的Web服务器
    hello
    Python几周学习内容小结
    运用数据库来存储小信息
    运用SharedPreferences“偷取”输入的信息
    好多鱼 好多图片
    唉 调皮的ListView
    磨人的Fragment的转换
    论Activity的转换
    APP界面设计 大概总结
  • 原文地址:https://www.cnblogs.com/wxiaoyu/p/9579456.html
Copyright © 2011-2022 走看看