Web APIs 第六天

  • 正则表达式介绍
  • 语法
  • 元字符
  • 修饰符

一.正则表达式介绍

① 简介

  • 用来匹配字符串中字符组合的模式
  • 在JavaScript中,正则表达式也是对象
  • 通常用来查找,替换那些符合正则表达式的文本,许多语言都支持正则表达式

② 使用场景

  • 验证表单:用户名表单只能输入英文字母,数字或者下划线
  • 过滤掉页面内容中的一些敏感词,从字符串中获取我们想要的特定部分

③ 定义正则表达式语法

  • /   /  是正则表达式字面量
const 变量名 = /表达式/

④ test()方法 用来查看正则表达式与指定的字符串是否匹配

  •  reg.test(被检测的字符串)
  • 如果正则表达式与指定的字符串匹配,返回true, 否则返回false

⑤ exec() 方法  在一个指定字符串中执行一个搜索匹配

  •   regObj.exec(被检测的字符串)
  • 如果匹配成功,exec() 方法返回一个数组,否则返回null
const str = '欢迎来到魔法世界'
const reg = /魔法/
console.log(reg.exec(str))

二.元字符

① 普通字符:大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字,普通字符只能够匹配字符串中与它们相同的字符

② 元字符(特殊字符):是一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能

③ 参考文档

 ④ 分类

  • 边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾), 用来提示字符所处的位置,主要有两个字符  

console.log(/哈/.test('哈'))    // 包含
console.log(/^哈/.test('哈'))   // 以'哈'开头
console.log(/^哈$/.test('哈'))  // 精确匹配,必须一模一样才能通过
  • 量词(表示重复次数)设定某个模式出现的次数

 // 3.*匹配0次或者更多次console.log(/^哈*$/.test('哈哈'))
// 4. +重复1次或者更多次console.log(/^哈+$/.test('哈一哈哈'))
// 5. 0次或者1次console.log(/^哈?$/.test(''))// 6. {n} n写几就必须出现几次console.log(/^哈{5}$/.test('哈哈哈'))
// 7.{n,}  大于等于n次console.log(/^哈{5,}$/.test('哈哈哈哈哈哈'))
// 8.{n,m} 大于等于n小于等于m 逗号左右不要有空格 console.log(/^哈{5,8}$/.test('哈哈哈哈哈'))

   

  • 字符类(比如 \d表示 0~9)

    (1)[ ] 匹配字符集合:后面的字符串只要包含abc中任意一个字符,都返回true    

console.log(/[asbc]/.test('a'))

    (2)[a-z]: 使用连字符,表示一个范围

    (3)[ ]里面加上 ^ 取反符号

      (4) . 匹配除换行符之外的任何单个字符

    (5)预定义类

 三.修饰符

① 修饰符约束正则执行的某些细节行为,比如是否区分大小写,是否支持多行匹配

② 语法:/表达式/修饰符

  • i 是单词ignore的缩写,正则匹配时字母不区分大小写
  • g 是单词global的缩写,匹配所有满足正则表达式的结果

③ 字符串.replace(/正则表达式/, '替换的文本')

console.log(/a/i.test('A'));
const str = 'java是一门最好的语言,hello java'
//  g表示全局
const res = str.replace(/java/ig, 'Javascript')
console.log(res)

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/42330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法通关村第4关【白银】| 栈的经典算法问题

1.括号匹配问题 思路:将左括号压入栈中,遍历字符串,当遇到右括号就出栈,判断是否是匹配的一对,不是就返回false(因为按照顺序所以当遇到右括号出栈一定要是匹配的)。使用Map来简化ifelse clas…

问道管理:放量打拐什么意思?常见的放量打拐三种形态?

成交量一直是股票交易中比较重要的目标,那么,放量打拐是什么意思?常见的放量打拐三种形状是什么?下面问道管理为我们预备了相关内容,以供参阅。 放量打拐什么意思? 放量是指股票成交量与前几个交易日比较显…

安装和配置 Ansible

安装和配置 Ansible 按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible: 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求: node1 是 dev 主机组的成员 node2 …

openGauss学习笔记-43 openGauss 高级数据管理-事件触发器

文章目录 openGauss学习笔记-43 openGauss 高级数据管理-事件触发器43.1 语法格式43.2 参数说明43.3 示例 openGauss学习笔记-43 openGauss 高级数据管理-事件触发器 触发器会在指定的ddl事件发生时自动执行函数。目前事件触发器仅在PG兼容模式下可用。 43.1 语法格式 创建事…

独家!网络机顶盒哪个好?测评员深度对比盘点网络机顶盒排名

网络机顶盒称得上是家家户户必备,每年我都会进行网络机顶盒的测评,今年已经测评过十几款了,后台收到很多私信不知道网络机顶盒哪个好,我本期整理了网络机顶盒排名,大家在选购时可以参考: ◆泰捷WEBOX 60Pro…

Keepalived + Nginx 实现高可用

一、简介 浮动IP、漂移IP地址又叫做VIP,也就是虚拟IP。 Keepalived 是一种高性能的服务器高可用或热备解决方案。 Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实现基础&a…

【C++】模板template

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ C       🛰️社区 :✈️ 进步学堂       🛰️欢…

Django之定时任务--apscheduler

Django--定时任务apscheduler的使用 apscheduler定时任务的使用1、安装包2、配置settings.py3、在manage.py的文件同级目录下创建文件scheduler.py4、在项目的urls.py中调用这个定时计划5、然后启动项目 python manage.py runserver,在admin中查看就能看到你的定时任务及执行的…

机器学习算法之-逻辑回归(1)

什么是回归 回归树,随机森林的回归,无一例外他们都是区别于分类算法们,用来处理和预测连续型标签的算法。然而逻辑回归,是一种名为“回归”的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问…

Vue 引入 Element-UI 组件库

Element-UI 官网地址:https://element.eleme.cn/#/zh-CN 完整引入:会将全部组件打包到项目中,导致项目过大,首次加载时间过长。 下载 Element-UI 一、打开项目,安装 Element-UI 组件库。 使用命令: npm …

ArcGIS Maps SDK for JavaScript系列之二:认识Map和MapView

目录 Map创建一个 Map 对象的示例代码:Map的常用属性Map的常用方法 MapViewMapView的常用属性MapView的常用方法 在 ArcGIS Maps SDK for JavaScript 中,Map 和 MapView 是两个重要的概念,用于创建和展示地图应用程序。 Map Map 表示一个地图…

【Rust】Rust学习 第十三章Rust 中的函数式语言功能:迭代器与闭包

Rust 的设计灵感来源于很多现存的语言和技术。其中一个显著的影响就是 函数式编程(functional programming)。函数式编程风格通常包含将函数作为参数值或其他函数的返回值、将函数赋值给变量以供之后执行等等。 更具体的,我们将要涉及&#…

bert,transformer架构图及面试题

Transformer详解 - mathor atten之后经过一个全连接层残差层归一化 class BertSelfOutput(nn.Module):def __init__(self, config):super().__init__()self.dense nn.Linear(config.hidden_size, config.hidden_size)self.LayerNorm nn.LayerNorm(config.hidden_size, epscon…

redis 发布和订阅

目录 一、简介 二、常用命令 三、示例 一、简介 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 ,以及订阅这个频道的三个客户…

前端对文件转换处理的一些常用方法

文章目录 0,前言1,将图片的url网络链接(http://) 转为base64格式2,将base64的图片数据转换为file文件3,将以base64的图片数据转换为Blob4,将file文件转化为base645,将file文件转换为Blob6,获取文…

利用Opencv实现人像迁移

前言: Hello大家好,我是Dream。 今天来学习一下如何使用Opencv实现人像迁移,欢迎大家一起参与探讨交流~ 本文目录: 一、实验要求二、实验环境三、实验原理及操作1.照片准备2.图像增强3.实现美颜功能4.背景虚化5.图像二值化处理6.人…

item_password-获得淘口令真实url

一、接口参数说明: item_password-获得淘口令真实url ,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_password 名称类型必须描述keyString是调用key&#xff08…

tomcat源码修改与编译

1、获取源码 从github下载其源码:https://github.com/apache/tomcat 2、选择版本 切换到对应版本(直接用相对应的Git tag即可): git checkout 9.0.793、修改源代码,并且生成补丁 这里我们以修改去掉新版本的ws的检…

129.【Spring 注解 IOC】

Spring 注解 (一)、组件注册1. Configuration 与 Bean 容器注册组件(1).无注解注入方式(2).注解注入方式 2. ComponentScan 自动扫描组件和自动扫描规则(1).无注解扫描方式(2).注解扫描注入方式(3).指定扫描或不扫描的包 (过滤) 3. 自定义TypeFilter指定过滤规则 Filter(1).自定…

QT多屏显示程序

多屏显示的原理其实很好理解,就拿横向扩展来说: 计算机把桌面的 宽度扩展成了 w1(屏幕1的宽度) w2(屏幕2的宽度) 。 当一个窗口的起始横坐标 > w1,则 他就被显示在第二个屏幕上了。 drm设备可以多用户同时打开&am…