zoukankan      html  css  js  c++  java
  • 正则案例

    使用点元字符

    var pattern = /g..gle/; //.匹配一个任意字符

    var str = 'google';

    alert(pattern.test(str));

    重复多次匹配

    var pattern = /g.*gle/; //.匹配 0 到多个

    var str = 'google'; //*,?,+,{n,m}

    alert(pattern.test(str));

    使用字符类匹配

    var pattern = /g[a-zA-Z_]*gle/; //[a-z]*表示任意个 a-z 中的字符

    var str = 'google';

    alert(pattern.test(str));

     

    var pattern = /g[^0-9]*gle/; //[^0-9]*表示任意个非 0-9 的字符

    var str = 'google';

    alert(pattern.test(str));

     

    var pattern = /[a-z][A-Z]/; //[A-Z]+表示 A-Z 一次或多次

    var str = 'gOOGLE';// gO识别出来

    alert(pattern.test(str));

    使用元符号匹配

    var pattern = /gw*gle/; //w*匹配任意多个所有字母数字_

    var str = 'google';

    alert(pattern.test(str));

     

    var pattern = /googled*/; //d*匹配任意多个数字

    var str = 'google444';

    alert(pattern.test(str));

     

    var pattern = /D{7,}/; //D{7,}匹配至少 7 个非数字

    var str = 'google8';

    alert(pattern.test(str));

    使用锚元字符匹配

    var pattern = /^google$/; //^从开头匹配,$从结尾开始匹配

    var str = 'google';

    alert(pattern.test(str));

     

    var pattern = /goosgle/; //s 可以匹配到空格

    var str = 'goo gle';

    alert(pattern.test(str));

     

    var pattern = /google/; // 可以匹配是否到了边界

    var str = 'google';

    var str2= 'googleaa googlexx google dsdddd';

    alert(pattern.test(str));

    使用或模式匹配

    var pattern = /google|baidu|bing/; //匹配三种其中一种字符串

    var str = 'google';

    alert(pattern.test(str));

    使用分组模式匹配

    var pattern = /(google){4,8}/; //匹配分组里的字符串 4-8

    var str = 'googlegoogle';

    alert(pattern.test(str));

     

    var pattern = /8(.*)8/; //获取 8..8 之间的任意字符

    var str = 'This is 8google8, dd 8ggg8';

    console.log(str.match(pattern));

    //下标0指正则匹配出来的值,下标1指小括号分组匹配出来的值;

    //如果加上全局参数g,分组里的值就取不出来

     

    var pattern = /8(.*)8/;

    var str = 'This is 8google8';

    var result = str.replace(pattern,'<strong>$1</strong>'); //得到替换的字符串输出

    document.write(result);

     

    var pattern = /(.*)s(.*)/;

    var str = 'google baidu';

    var result = str.replace(pattern, '$2 $1'); //将两个分组的值替换输出

    document.write(result);

    使用 exec 返回数组

    var pattern = /^[a-z]+s[0-9]{4}$/i;

    var str = 'google 2012';

    alert(pattern.exec(str)); //返回整个字符串

            

    var pattern = /^[a-z]+/i; //只匹配字母

    var str = 'google 2012';

    alert(pattern.exec(str)); //返回 google

     

    var pattern = /^([a-z]+)s([0-9]{4})$/i; //使用分组

    var str = 'google 2012';

    alert(pattern.exec(str)[0]); //google 2012

    alert(pattern.exec(str)[1]); //google

    alert(pattern.exec(str)[2]); //2012

    捕获性分组

    var pattern = /(d+)([a-z])/; //捕获性分组

    var str = '123abc';

    console.log(pattern.exec(str));

    非捕获性分组

    //?=n 量词匹配任何其后紧接指定字符串 n 的字符串。

    var str="Is this all there is";

    var pattern=/is(?= all)/g;//对其后紧跟 "all" "is" 进行全局搜索

    console.log( pattern.exec(str) );   // is this 中的 is

     

    //?!n 量词匹配其后没有紧接指定字符串 n 的任何字符串。

    var str="Is this all there is";

    var pattern=/is(?! all)/gi;//对其后没有紧跟 "all" "is" 进行全局搜索

    console.log( pattern.exec(str) );//Is

    console.log( pattern.exec(str) );//is

    使用分组嵌套

    var pattern = /(A?(B?(C?)))/; //从外往内获取

    var str = 'ABC';

    console.log(pattern.exec(str));

    使用特殊字符匹配

    var pattern = /.[/b]/; //特殊字符,用符号转义即可

    var str = '.[/b]';

    console.log(pattern.test(str));

    使用换行模式

    var pattern = /^d+/mg; //启用了换行模式

    var str = '1.baidu 2.google 3.bing';

    var result = str.replace(pattern, '#');

    alert(result);

    邮政编码检测

    // 6 位数字

    /^d{6}$/

    文件格式检测

    //xxx.zipxxx.gzxxx.rar

    /^w+.(zip|gz|rar)$/

    字符串首尾去空格

    str = str.replace(/^s+/,'');   //去掉左侧的空格

    str = str.replace(/s+$/,'');   //去掉右侧的空格

    邮件格式检测

    //xxxxx @ xxxx(.xxxx)

    /^w+@w+(.w+)+$/

    手机号检测

    // 1开头的11位数字

    /^13d{9}$/

    身份证检测

    // 18位数字 17位数字加X

    /^d{17}(d|X)$/

    日期检测

    // xxxx-xx-xx| xxxx/xx/xx | xxxx.xx.xx

    /^(d{2}|d{4})[-/.]d{2}[-/.]d{2}$/

    中文检测

    // 把非中文替换为空

    str.replace(/[^u4e00-u9fa5]/g,'')

    用户名检测

    // 账户名只能使用数字字母下划线,且数字不能开头,长度在6-15之间

    /^[a-zA-Z_]w{5,14}$/

    字符串过滤

    // 将所有的bagbegbigbog改为bug

    str.replace(/(bag|beg|big|bog)/g,'bug')

  • 相关阅读:
    AQS笔记二 ---- 使用AQS自定义锁
    AQS笔记一 --- 源码分析
    ElasticSearch(二十一)正排和倒排索引
    ElasticSearch(二十)定位不合法的搜索及其原因
    ElasticSearch(十八)初识分词器
    ElasticSearch(十七)初识倒排索引
    还在用 kill -9 停机?这才是最优雅的姿势(转)
    一文快速搞懂MySQL InnoDB事务ACID实现原理(转)
    你真的理解零拷贝了吗?(转)
    关于分布式事务的读书笔记
  • 原文地址:https://www.cnblogs.com/nbZzp/p/7459883.html
Copyright © 2011-2022 走看看