• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    正则表达式小结篇

    正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

    下面小编给大家总结了些关于正则表达式知识点,具体内容如下所示:

    1、元字符

      [拥有特殊含义的元字符]
      \d -> 匹配一个0-9的数字,相当于[0-9],和它相反的是\D ->匹配一个除了0-9的任意字符
      \w -> 匹配一个0-9、a-z、A-Z、_的数字或字符,相当于[0-9a-zA-Z_]
      \s -> 匹配一个空白字符(空格、制表符...)
      \b -> 匹配一个单词的边界
      \t -> 匹配一个制表符
      \n -> 匹配一个换行
      . -> 匹配一个除了\n以外的任意字符
      ^ -> 以某一个元字符开头
      $ -> 以某一个元字符结尾
      \ -> 转移字符
      x|y -> x或者y的一个
      [xyz] -> x、y、z中的任意一个
      [^xyz] -> 除了xyz中的任意一个字符
      [a-z] -> 匹配a-z中的任意一个字符
      [^a-z] -> 匹配除了a-z中的任意一个字符
      () -> 正则中的分组

      注意:

      1)关于[]

        a、[+] ->中括号中出现的所有字符都代表的是本身的意思
        b、[12-65] ->这个不是12-65而是1/2-6/5三者中的一个

      2)关于()

        a、分组的作用是改变默认的优先级,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我们认为的18或19,但是改成/^(18|19)$/就是单纯的18或19了
        b、可以在捕获大正则匹配的内容同时,把分组匹配的内容也进行捕获->分组捕获
        c、分组引用,例如:/^(\d)(\w)\2\1$/,这里的\2是和第二个分组出现一模样的内容,\1是和第一个分组出现一模一样的内容,例如:"0aa0"就符合了

      [代表数量的量词元字符]

      * -> 0到多个
      + -> 1到多个
      ? -> 0到1个
      {n} -> 出现n次
      {n,} -> 出现n到多次
      {n,m} -> 出现n到m次

      注意:

      1)关于?的几种情况

        a、放在非量词元字符后面,代表出现0-1次
        b、放在量词元字符后面,代表取消捕获时候的贪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正则这样写 reg=/\d+?/; reg.exec("2015") -> "2"
        c、在分组开头加?:,代表当前的分组只是匹配不进行捕获,例如:/^(?:\d+)$/
        d、在分组开头加?=,正向预查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
        e、在分组开头加?!,负向预查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的东西)"都符合

      [代表本身意思的元字符]

      除了以上的,在字面量方式中,我们出现的其他任意字符代表的都是自己本身的意思

      var num=12;
      var reg=/^\w"+num+"$/; ->这里"+num+"不是把变量的值拼接,而这里的不管是"还是+都是元字符

      ->对于需要拼接字符串和变量的方式我们只能使用实例方式创建正则

    2、修饰符

      i -> ignoreCase 忽略字母的大小写
      g -> global 全局匹配 (加上g可以解决正则捕获时候的懒惰性)
      m -> multiline 多行匹配

    3、项目中常用的正则

      1)有效数字的

    var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;

      2)邮箱的

     var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

      3)电话的

     var reg = /^1\d{10}$/;

      4)年龄在18-65之间的

     var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;

      5)中文姓名

     var reg = /^[\u4e00-\u9fa5]{2,4}$/;

      6)身份证

     var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/;
     //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)

    4、正则的匹配

      reg.test([string]) ->true就是匹配成功  false->匹配不成功

    5、正则的捕获

      1)reg.exec([string])

        -> 首先去匹配,匹配成功在捕获,返回的是一个数组; 如果匹配不成功返回的是null;
        -> 正则的捕获即懒惰又贪婪
        -> 解决懒惰性 在正则的末尾增加全局修饰符g
        -> 解决贪婪性 在量词后面加?

    以上所述是小编给大家介绍的正则表达式小结篇,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • swift中的正则表达式小结
    • js正则表达式中的问号几种用法小结
    • 正则表达式(括号)、[中括号]、{大括号}的区别小结
    • jQuery中校验时间格式的正则表达式小结
    • 正则中需要转义的特殊字符小结
    • PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
    • php正则表达匹配中文问题分析小结
    • ExtJs 正则表达式小结
    • PHP 正则表达式常用函数使用小结
    上一篇:正则表达式i修饰符(大小写不敏感)
    下一篇:正则表达式m修饰符(多行匹配)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    正则表达式小结篇 正则,表达式,小结,篇,正则,