正则表达式语法大全

2023-11-19

前言:一般开发中都会接触到正则表达式,作为一名合格的前端,也应该了解一下正则表达式编写原则,便于自己也能快速编写想要的正则表达式。

1、作用(正则表达式是一种字符串匹配的模式)

数据验证:比如电话号码、邮箱等

替换文本:快速找到特定文本,用于替换

快速提取字符串:基于匹配原则,快速从文档中查找或提取子字符串

2、语法(普通字符+特殊字符)

普通字符

[abc] 匹配[...]的所有字符

[^abc] 取反,除了[...]的其他字符

[A-Z] 区间字母A到Z

. 匹配除(\n换行符 \r 回车符)的任何单个字符

\s \S 匹配所有,\s所有空白符,包括换行 \S非空白符,不包括换行

\w 匹配字母、数字、下划线

特殊字符

$ 结尾位置 (匹配$字符----\$

^ 开始位置(匹配$字符----\^

() 子表达式开始和结束(匹配字符----\(   和  \)

* 匹配零次或多次(匹配字符----\*

+ 匹配一次或多次(匹配字符----\+

? 匹配零次或一次(匹配字符----\?

| 两项间的一个(匹配字符----\|

限定符

{n} n为非负整数,匹配n次

{n,} n为非负整数,至少n次

{n,m} n为非负整数,n<=m,最少n次,最多m次

修饰符

i 不区分大小写

g 全局匹配

m 多行匹配

s 特殊字符远点包含换行符

3、常用场景

  • 16进制颜色    /^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/     以#开始 ,6或3个字符(A-F、a-f、0-9)结尾
  • 电话号码  /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/      以1开头,3可跟任一数字(\d),4可跟5-9,5可跟0-3或5-9 ,6后2567其中一个,7后是0-8,8后任一数字,9后是0-3或3-5,其余8位是任意数字(\d{8})
  • 身份证号   /^[1-9]\d{5}(19|20|21)\d{2}(0[1-9]|10|11|12)(0[1-9]|[1-2]\d|30|31)\d{3}[\dX]$/       第一位在0-9区间,后面是5位任意数字,4位年份(19、20、21开头,后两位任意),两位代表月份(0开头的1-9或者是10、11、12),两位日期(01-31),三位顺序码,最后一位是校验码,可数字可X
  • 网址     /^((https?):)?\/\/([^?:/]+)(:(\d+))?(\/[^?]*)?(\?(.*))?/
  • 邮箱    ^[A-Za-z0-9-_\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$       名称有汉字([\ue00-\u9fa5])、字母([a-zA-z])、数字、下划线、中划线,域名有数字、字母、下划线、中划线

4、使用方法

字符串.match(正则):返回符合的字符串,若不满足返回null

字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1

字符串.replace(正则,新的字符串):找到符合正则的内容并替换

正则.test(字符串):在字符串中查找符合正则的内容,满足则返回true,反之为false

说明:new RegExp(规则).test(字符串)和上面写法作用相同

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式语法大全 的相关文章

随机推荐

  • WiFi网络编程(带OTA功能)

    参考 WiFi网络编程 上 地址 https www bilibili com video BV1VV411b75h spm id from 333 788 recommend more video 0 参考 WiFi网络编程 下 地址 h
  • 云原生之使用Docker部署Firefox浏览器

    云原生之使用Docker部署Firefox浏览器 一 Firefox浏览器介绍 1 1 Firefox简介 1 2 Firefox特点 二 本次实践介绍 2 1 本地环境规划 2 2 本次实践简介 三 本地环境检查 3 1 检查Docker
  • 头歌|Hadoop单点部署,安装和管理

    第1关 配置开发环境 JavaJDK的配置 mkdir app cd opt tar zxvf jdk 8u171 linux x64 tar gz mv jdk1 8 0 171 app vim etc profile vim 添加至文件
  • 应用级缓存

    缓存介绍 缓存 让数据更接近使用者 目的是让访问速度更快 工作机制是先从缓存中读取数据 如果没有 再从慢速设备上读取实际数据并同步到时缓存 缓存命中率 缓存回收策略 JAVA缓存类型 堆缓存 堆外缓存 磁盘缓存 分布式缓存 多级缓存
  • 电脑桌面图标不见了?三招教你轻松找回

    电脑桌面上的图标对于我们日常的操作和使用非常重要 但有时候会出现电脑桌面图标不见了的情况 让人感到困扰 在本文中 我们将介绍三种常见的方法 帮助您找回丢失的电脑桌面图标 让您的使用更加顺畅 方法1 查找桌面图标文件夹 相信很多人会遇到这样的
  • 蓝桥杯 成绩统计

    目录 问题描述 思路分析及代码实现 问题描述 小蓝给学生们组织了一场考试 卷面总分为 100 分 每个学生的得分都是一个 0 到 100 的整数 如果得分至少是 60 分 则称为及格 如果得分至少为 85 分 则称为优秀 请计算及格率和优秀
  • 51单片机的串口通迅

    通信的基本方式分为并行通信和串行通信 并行通信 数据的各位同时在多根数据线上发送或接收 特点 控制简单 传输速度快 由于输线较多 长距离传送时成本高且接收方的各位同时接收存在困难 串行通信 使用一条数据线 将数据一位一位的依次传输 每一位数
  • 1600*B. pSort(并查集)

    解析 并查集 将能够交换的位置相连 查看对应的位置能够交换 include
  • 面试题: Vue中的 computed 和 watch的区别

    computed computed看上去是方法 但是实际上是计算属性 它会根据你所依赖的数据动态显示新的计算结果 计算结果会被缓存 computed的值在getter执行后是会缓存的 只有在它依赖的属性值改变之后 下一次获取computed
  • 巧用 ChatGPT,让开发者的学习和工作更轻松

    引言 随着人工智能技术的快速发展和广泛应用 ChatGPT 作为一种新兴的自然语言处理模型 近期备受瞩目 引发了广泛讨论 ChatGPT 具有多种应用场景 既可以用作聊天机器人 实现智能问答和自然语言交互 也可以作为文本生成工具 帮助人们撰
  • html5中如何去掉input type date默认样式

    html5中如何去掉input type date默认样式 1 时间选择的种类 HTML代码 选择日期
  • 【初探DETR】安装环境

    windows下 需要环境 cython git https github com cocodataset cocoapi git subdirectory PythonAPI egg pycocotools torch gt 1 5 0
  • C# 实例详解委托之Func、Action、delegate(精品)

    概述 委托是 NET编程的精髓之一 在日常编程中经常用到 在C 中实现委托主要有Func Action delegate三种方式 本节主要就这三种委托的用法通过实例展开讲解 Func用法解析 Func Func是带返回值的委托 原型函数如下
  • 软件测试技术(性能与自动化测试)

    一 实验原理 1 功能与自动化测试 功能自动化测试是指使用自动化工具和脚本来模拟用户操作 验证软件应用程序的各种功能是否按照预期工作的过程 在进行功能自动化测试时 测试人员通常编写脚本 这些脚本可以模拟用户在应用程序中进行的各种操作 例如点
  • 【机器学习】12、主题模型

    文章目录 一 pLSA 二 LDA模型 一 pLSA 每个文档都会在主题上有一个分布 每个主题在各个词上也有一个分布 p w j
  • React中使用if else 条件判断

    在react中用jsx渲染dom的时候经常会遇到if条件判断 然而在jsx中竟是不允许if条件判断的 以下有几种判断方式 可以根据自己的应用场景 挑选适合的 方案一 class HelloMessage extends React Comp
  • QTableWidget获取选中的内容及所在行数

    QTableWidget选中所有单元格及取消选中所有单元格 ui gt allowSelectKeyTableWidget gt selectAll ui gt allowSelectKeyTableWidget gt setFocus i
  • 使用 Blender* 重新拓扑 VR 和游戏素材

    本文介绍如何将网格重新拓扑成一个整洁的低密度模型 然后 UV 解包该网格 以便将纹理贴添加至新模型 本文还将探讨如何使用免费工具 比如 Blender 及其 Bsurface 插件 重新拓扑雕塑的 3D 网格 查看详情
  • bootstrap3 表单构建器_如何快速构建基于MES的开源云平台

    导读本文为2019工业互联网平台活动盘点文章 同时也欢迎广大工业互联网平台企业参与本次盘点 具体参与方式可加编辑微信号 13517202453 详细咨询 随着智能制造转型战略的持续推进 MES作为承载智能化生产制造过程的核心系统正在受到越来
  • 正则表达式语法大全

    前言 一般开发中都会接触到正则表达式 作为一名合格的前端 也应该了解一下正则表达式编写原则 便于自己也能快速编写想要的正则表达式 1 作用 正则表达式是一种字符串匹配的模式 数据验证 比如电话号码 邮箱等 替换文本 快速找到特定文本 用于替