一、概念:

  • 正则表达式(Regular Expression),用于描述一组字符串特征的模式,可以用于匹配特定的字符串。
  • 本质是一个规则字符串,用指定的符号来编写,制定规则。

二、应用场景:

  • 验证:对表单数据的合法性验证;
  • 查找:从大量的字符串数据中快速提取到指定内容;
  • 替换:从大量的字符串数据中快速提取到指定内容,并进行替换;

三、如何创建正则表达式:

  • 方式一:

    • var 正则变量名称=new RegExp('正则表达式');

    • 转义符\使用要用两个\\

    • var telReg=new RegExp('^1[3-9]\\d{9}$');
  • 方式二:(常用)

    • var 正则变量名称=/正则表达式/

    • 转义符\使用只需要一个\

    • var telReg=/^1[3-9]\d{9}$/;

四、语法 

  • 字符类

    • .

      • 匹配任意一个字符。
    • []
      • 匹配中括号中任意一个字符。
      • [abc]:取a、b、c中任意一个字符。
    • -
      • 在中括号中表示字符范围。
      • [a-zA-Z]:取任意一个大写或小写字母。
      • [a-zA-Z0-9]:取任意一个数字、字母。
    • ^
      • 在中括号中表示除中括号内字符以外的任意一个字符。
      • [^a-zA-Z]:取除字母以外的任意一个字符。
  • 数量限定符
    • ?

      • 紧跟前面的单元匹配0次或1次。
      • [a-z]?:出现0次或1次小写字母。
    • +
      • 紧跟前面的单元匹配1次或多次。
      • [a-z]+:出现1次或多次小写字母。
    • *
      • 紧跟前面的单元匹配任意次。
      • [a-z]*:出现任意次小写字母。
    • {N}
      • 紧跟前面的单元匹配N次。
      • [a-z]{2}:出现2次小写字母。
    • {N,}
      • 紧跟前面的单元匹配至少N次。
      • [a-z]{2,}:出现至少2次小写字母。
    • {0,M}
      • 紧跟前面的单元匹配至多M次。
      • [a-z]{,2}:出现至多2次小写字母。
    • {N,M}
      • 紧跟前面的单元匹配至少N次至多M次。
      • [a-z]{6,12}:出现至少6次至多12次小写字母。
  • 位置限定符
    • ^:

      • 匹配行首位置。
      • ^1:以1开头。
      • ^[a-z]:以小写字母开头。
    • $:
      • 匹配行尾位置。
      • [a-z]$:以小写字母结尾。
  • 预定义符号
    • \w:

      • 数字、字母、下划线中任意一个字符。等价于[a-zA-Z0-9_]
    • \W:
      • 除了数字、字母、下划线以外的任意一个字符。等价于[^a-zA-Z0-9_]
    • \d:
      • 任意一个数字字符。等价于[0-9]
    • \D:
      • 任意一个非数字字符。等价于[^0-9]
    • \s:
      • 匹配任意一个空白字符(空格和换行)。
    • \S:
      • 匹配任意一个非空白字符(空格和换行)。
  • 特殊符号
    • ()

      • 将小括号中内容作为一个单元进行处理(一个整体)。
      • \.(com|cn|org)$:以.com.cn.org结尾。
    • |
      • 表示或者。
    • \
      • 转义符,将\右边的字符进行转义,如果右边的字符具备特殊意义(正则字符),则转义后,不具备特殊意义(普通字符)。

五、常用函数:

  • test()

    • 判断指定字符串是否满足当前正则表达式规则,如果满足则返回true,否则返回false。

    • var reg=/^\.(com|cn|org)$/;
      var str=prompt('请输入:');
      console.log(reg.test(str));

 六、String中正则表达式的相关常用函数

  • match()

    • 用于检索当前字符串中与指定正则表达式匹配的值。

    • 参数

      • 目标正则表达式。
    • 返回值

      • 查找到的目标字符结果。
      • var str='12ab34cd56ef78gh999';
        var reg=/[0-9]+/g;
        console.log(str.match(reg));//['12','34','56','78','999']
  • replace()

    • 将当前字符串中与指定正则表达式匹配的值替换为指定值。

    • 参数

      • 目标正则表达式。
    • 返回值

      • 替换后的字符串结果。
      • var str='123abc456efg789';
        var reg=/[0-9]/g;
        console.log(str.replace(reg,'*'));//***abc***efg***
  • split()

    • 将当前字符串中与指定正则表达式匹配的值作为分割符进行分割,形成子串数组。

    • 参数

      • 目标正则表达式。
    • 返回值

      • 切割后的子串数组。
      • var str='123abc456efg';
        var reg=/[0-9]+/;
        console.log(str.split(reg));//['','abc','efg']

七、匹配模式

  • 分类

    • u:只匹配第一个子串结果。默认模式。
    • g:全局匹配模式,匹配所有子串。
    • i:忽略大小写模式。
  • 使用

    • 方式一:

      • var 正则变量名称=new RegExp('正则表达式','模式');

      • var telReg=new RegExp('[a-z]','ig');
      • 方式二:(常用)

        • var 正则变量名称=/正则表达式/模式

        • var telReg=/[a-z]/ig;

前端基础-JavaScript的正则表达式详解相关推荐

  1. [js点滴]JavaScript之正则表达式详解02

    一些符号可以影响表达式内部的子表达式之间的关系: 表达式 作用 | 左右两边表达式之间 "或" 关系,匹配左边或者右边 ( ) (1). 在被修饰匹配次数的时候,括号中的表达式可以 ...

  2. JavaScript中正则表达式详解

    正则表达式的介绍 * 正则表达式也叫规则表达式[Regular Expression],是按照一定的规则组成的一个表达式,主要作用是用来匹配字符串的* 正则表达式可以在大多数编程语言中使用* 正则表达 ...

  3. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

  4. 视频教程-javascript/jquery全过程详解-Java

    javascript/jquery全过程详解 资深大数据.java讲师,十年开发经验,曾经任职于北大青鸟.讯腾软件等多家知名教育机构,精通javaweb, 前端技术,J2EE技术体系,熟练使用Spri ...

  5. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

    判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...

  6. java中的正则表达式详解

    转自:http://gstarwd.iteye.com/category/91108?show_full=true 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可 ...

  7. 菜鸟教程python正则表达式_python 正则表达式详解

    python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...

  8. JS正则表达式详解2

    JS的正则表达式详解 //校验是否全由数字组成 代码 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) retu ...

  9. Henry前端笔记之 Date对象详解

    Henry前端笔记之 Date对象详解 Date 对象 1 时间格式简介 2 Date.now 与 new Date().getTime() 的区别 3 Date对象详解 普通函数的用法 构造函数的用 ...

最新文章

  1. NLP实战:利用Python理解、分析和生成文本 | 赠书
  2. 微信小程序的tab选项卡的实现
  3. 画正圆角矩形 - HTML5 Canvas 作图
  4. SqlDataAdapter上调用存储过程
  5. CTFshow php特性 web103
  6. android listview item 圆角,ListView圆角 实现方法(一)
  7. MySQL设置某一字段默认为0,但是插入数据化却显示为null
  8. office 2007图标_微软Office 365桌面版新图标开始测试
  9. 信守承诺:JAX-RS API的基于合同的测试
  10. 2020年边缘计算最新前沿报告:如何与核心云、5G、AI协同?如何打造新业态和部署运营?...
  11. Silverlight4中右键菜单实现-附源码下载
  12. uFrame近况(2016年4月8日更新)
  13. bs4用法实例:用Python爬取金融市场数据
  14. 教我兄弟学Android逆向
  15. elasticsearch6.1.3 集成分词器
  16. 关于python的自省机制
  17. 远方的人 -- 龙瑜
  18. 记一次NGINX配置问题
  19. Unity HDRP Volume框架 — Lighting(光照)
  20. PCIE Feature ------ INTx

热门文章

  1. ps将每层导出为图片序列
  2. 计算机研究生就业方向之去银行券商信息技术部门
  3. 展晓凯:“零经验”的我与唱吧从零到四亿
  4. 使用jmeter进行App服务器压力测试
  5. 【青龙面板】柚子计步
  6. 手机备忘录扫描功能怎么用
  7. 用Python在Excel中查找并替换数据
  8. COCOS2D-X之骨骼动画武器换装效果Demo
  9. 【解题控】两个练习让你掌握“平行四边形”
  10. Git错误:Incorrect username or password ( access token )