zoukankan      html  css  js  c++  java
  • JS正则表达式总结

    正则需要传参时,必须使用new RegExp();

    var re = new RegExp('\\b'+sClass+'\\b');

    -------------------------------------------------------------
    量词,转义字符:

    \s : 空格
    \S : 非空格

    \d : 数字
    \D : 非数字

    \w : 字符(字母,数字,下划线)
    \W : 非字符

    \. :真正的点

    \b:独立的部分 (起始,结束,空格)
    \B:非独立的部分

    ^ :放在正则前边,代表起始
    $ :代表结束


    /^[1-9]\d{4,11}$/ //QQ号检测


    + :至少出现一次;
    | :或
    ^ :非 [在中括号里边是非的意思]
    . :任意字符


    {}:
    {4,7}:最少4次,最多7次
    {4,}:最少4次,最多不限
    {4}:正好4次

    +:{1,} 即至少出现1次
    ?:{0,1} 即出现0次或1次
    *:{0,} 即至少出现0次

    重复子项:

    var str = 'abca';
    var re = /(a)(b)(c)\1/; //true
    // var re = /(a)(b)(c)\2/; //false

    -------------------------------------------------------------
    标识:不区分大小写 i 全局匹配 g

    正则默认区分大小写,
    如果不区分大小写,在正则最后加标识 i ;
    正则匹配成功就会结束,不会继续匹配,
    如果要全部查找,在正则最后加标识 g ;(全局匹配)

    -------------------------------------------------------------
    四种常用方法test search match replace

    1,正则.test(字符串) [匹配成功:返回true,失败:返回false]
    2,字符串.search(正则) [匹配成功:返回位置,失败:返回-1]
    3,字符串.match(正则) [匹配成功:返回匹配成功的数组,失败:返回null]
    4,字符串.replace(正则,第二个参数)
    replace第二个参数可以是[字符串],
    也可以是[回调函数],函数的第一个参数就是匹配成功的字符,
    字符串.replace(正则,function($0,$1,$2){})

    -------------------------------------------------------------

    匹配子项 : 小括号()
    [分组操作]

    字符串.replace(正则,function($0,$1,$2){})
    $0:母亲;(整体)
    $1:第一个孩子;(第一个小括号)
    $2:第二个孩子;(第二个小括号)

    var str = 'abc';
    var re= /(a)(b)(c)/;
    str.match(re); 返回[abc,a,b,c]
    match只有不加g(全局匹配)才能获得子项

    -------------------------------------------------------------
    // 字符类:一组相似的元素
    // []中括号的整体代表一个字符

    var str='abc';

    var re=/a[bde]c/;

    alert(re.test(str)); 返回true

    var str='abdc';

    var re=/a[bde]c/;

    alert(re.test(str)); 返回false

    var str='abc';

    var re=/a[a-z0-9A-Z]c/;

    alert(re.test(str));

    -------------------------------------------------------------

    \b:独立的部分 (起始,结束,空格)

    var str='onetwo';

    // var re= /\bone/; //true

    var re= /one\b/; //false

    alert(re.test(str));

    -------------------------------------------------------------
    重复子项


    // \1 :重复的第一个子项
    // \2 :重复的第二个子项

    var str = 'abca';
    var re = /(a)(b)(c)\1/; //true
    // var re = /(a)(b)(c)\2/; //false

    alert(re.test(str));


    // var re = /\w\w/; //c9
    // var re = /(\w)\1/; //cc 99

    -------------------------------------------------------------
    找出出现次数最多的字符和次数

    var str='ahlihkhkjsssssssssssssdasdasdasdasdsdafafqrghjff';

    var arr = str.split(''); //分割成数组

    str=arr.sort().join('');//数组连成字符串

    var re=/(\w)\1+/g;
    var index=0;
    var value='';

    str.replace(re,function ($0,$1) {
    if (index<$0.length) {
    index=$0.length;
    value=$1;
    }
    })

    -------------------------------------------------------------

    匹配中文:[\u4e00-\u9fa5]
    行首行尾空格:^\s*|\s*$
    Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
    网址:[a-zA-z]+://[^\s]*
    QQ号:^[1-9][0-9]{4,9}$
    邮政编码:[1-9]\d{5}
    身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x

  • 相关阅读:
    WPF:DataGrid 自动生成行号
    C#:WinForm之Command
    i.MX RT1010之FlexIO模拟SSI外设
    i.MX RT1010之FlexIO模拟I2S外设
    i.MX RT600之DSP开发环境调试篇
    i.MX RT600之DSP调试环境搭建篇
    i.MX RT600之DMIC外设介绍及应用
    i.MX RT600之I2S外设介绍及应用
    ssm框架思维-登录
    idea里面搭建SSM框架-crud
  • 原文地址:https://www.cnblogs.com/king2016/p/5738783.html
Copyright © 2011-2022 走看看