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

    正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用,经常用于表单校验,高级搜索等。

    创建正则表达式

    【07-正则表达式的创建.html】

    构造函数的方式

    var regExp = new RegExp(/d/);

    正则字面量

    var regExp = /d/;

    正则的使用

    /d/.test("aaa1");

    元字符

    正则表达式由一些普通字符和元字符组成,普通字符包括大小写字母、数字等,而元字符则具有特殊的含义。

    常见元字符

    yuan

    |表示或,优先级最低

    ()优先级最高,表示分组

    字符类的元字符

    []在正则表达式中表示一个字符的位置,[]里面写这个位置可以出现的字符。

    console.log(/[abc]/);//匹配a,b,c

    [^]在中扩号中的^表示非的意思。

    //^表示该位置不可以出现的字符
    console.log(/[^abc]/);//匹配除了a,b,c以外的其他字符

    [a-z] [1-9]表示范围

    console.log(/[a-z]/.test("d"));//小写字母
    console.log(/[A-Z]/.test("d"));//大写字母
    console.log(/[0-9]/.test("8"));//数字
    console.log(/[a-zA-Z0-9]/);//所有的小写字母和大写字母以及数字

    边界类元字符

    我们前面学习的正则只要有满足的条件的就会返回true,并不能做到精确的匹配。

    【12-正则边界.html】

    ^表示开头   []里面的^表示取反

    $表示结尾

    console.log(/^chuan/.test("dachuan"));//必须以chuan开头
    console.log(/chuan$/.test("chuang"));//必须以chuan结尾
    console.log(/^chuan$/.test("chuan"));//精确匹配chuan

    //精确匹配chuan,表示必须是这个
    console.log(/^chuan$/.test("chuanchuan"));//fasle

    量词类元字符

    量词用来控制出现的次数,一般来说量词和边界会一起使用

    【13-正则量词.html】

    1. *表示能够出现0次或者更多次,x>=0;

    2. +表示能够出现1次或者多次,x>=1

    3. ?表示能够出现0次或者1次,x=0或者x=1

    4. {n}表示能够出现n次

    5. {n,}表示能够出现n次或者n次以上

    6. {n,m}表示能够出现n-m次

    思考:如何使用{}来表示*+?

    正则的使用

    正则测试

    1. 验证座机

      • 比如010-12345678 0797-1234567

      • 开头是3-4位,首位必须是0

      • -后面是7-8位

      var phoneReg = /^0d{2,3}-d{7,8}$/;
    2. 验证姓名

      • 只能是汉字

      • 长度2-6位之间

      • 汉字范围[u4e00-u9fa5]

      var nameReg = /^[u4e00-u9fa5]{2,6}$/;
    3. 验证QQ

      • 只能是数字

      • 开头不能是0

      • 长度为5-11位

      var qqReg = /^[1-9]d{4,10}$/;
    4. 验证手机

      • 11位数字组成

      • 号段13[0-9] 147 15[0-9] 17[0178] 18[0-9]

      var mobileReg = /^(13[0-9]|147|15[0-9]|17[0178]|18[0-9])d{8}$/;
    5. 验证邮箱

      • 前面是字母或者数字

      • 必须有@

      • @后面是字母或者数字

      • 必须有.

      • .后面是字母或者数字

      var emailReg = /^w+@w+(.w+)+$/;

    正则替换

    var str = "   123AD  asadf   asadfasf  adf  ";
    1  替换掉字符串中的所有空白
    2. 将所有的ad替换成xx
    3. 将所有的ad/AD替换成xx

    var str = "abc,efg,123,abc,123,a"
    4. 所有的逗号替换成句号

    var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
    5. 把所有成绩都修改成100分

     

    懦夫从未启程,弱者死在途中
  • 相关阅读:
    win10下python环境变量设置
    c++ primer第15章这几个例子中的构造函数形式不太理解
    ++与*
    C++符号优先级
    56-Remove Linked List Elements
    55. Binary Tree Preorder Traversal
    54. Flatten Binary Tree to Linked List
    野指针--内存泄漏--缓存区溢出--栈溢出
    数组指针和指针数组的区别
    53-Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/oliviazhang/p/13884205.html
Copyright © 2011-2022 走看看