javascript正则深入

news2024/12/25 12:31:12

文章目录

  • 一、前言
  • 二、高级`API`
    • 2.1、模式匹配的用法`(x)`
    • 2.2、非捕获括号的模式匹配`(?:x)`
    • 2.3、先行断言`x(?=y)`
    • 2.4、后行断言`(?<=y)x`
    • 2.5、正向否定查找`x(?!y)`
    • 2.6、反向否定查找`(?<!y)x`
    • 2.7、字符集合和反向字符集合的用法 `[xyz] / [^xyz]`
    • 2.8、词边界和非单词边界匹配`\b\B`
    • 2.9、空白字符和非空白字符匹配`\s\S`
    • 2.10、单字字符和非单字字符匹配`\w\W`
  • 三、使用案例
    • 3.1、去除字符串内指定元素的标签
    • 3.2. 短横线命名转驼峰命名
    • 3.3. 去除字符串中的空格符
    • 3.4. 判断指定格式的数据输入合法性
    • 3.5. 去除`url`参数字符串中值为空的字段
    • 3.6. 将浏览器参数字符串转化为参数对象
    • 3.7. 计算字符串字节数
    • 3.8. 匹配是否包含中文字符
    • 3.9. 实现搜索联想功能
  • 四、最后

一、前言

正则表达式也许是javascript语言中最晦涩难懂的,但是也往往是最简洁的。工作中遇到的很多问题,诸如搜索,查找,高亮关键字等都可以使用正则轻松解决。

如果大家觉得正则表达式理解起来很麻烦,也可以使用如下在线网站【前往】, 只需要输入你的正则表达式, 它就能以图形的方式将你的正则展示出来:

二、高级API

2.1、模式匹配的用法(x)

模式匹配主要用来匹配某一类字符串并记住匹配项.

案例:

let str = 'xuxi is xuxi is'
let reg = /(xuxi) (is) \1 \2/g
reg.test(str)  // true    (1)
str.replace(reg, '$1 $2')  // xuxi is  (2)

解释: 其中括号被称为捕获括号, 模式中的 \1\2 表示第一个和第二个被捕获括号匹配的子字符串,即 xuxiis,匹配了原字符串中的后两个单词, 因此(1)中运行的结果为true. 当我们在字符串中使用replace时, 我们可以使用$1, $2这样的方式获取第n个匹配项,并用来替换字符串. 如(2)中的运行结果.

2.2、非捕获括号的模式匹配(?:x)

主要用来匹配某一类字符串但不记住匹配项.

案例:

let str = 'xuxixuxi'
let reg = /(?:xuxi){1,2}/g
reg.test(str)  // true    (1)

img

解释: 其中(?:)被称为非捕获括号, 我们可以使用它匹配一组字符但是并不记住该字符,一般用来判断某类字符是否存在于某字符串中.

2.3、先行断言x(?=y)

先行断言: 匹配x仅仅当x后面跟着y.

案例:

let str = '王者融化'
let reg = /王(?=者)/
reg.test(str)  // true    (1)

img

解释: /王(?=者)/会匹配到仅当它后面跟着.但是不属于匹配结果的一部分.

2.4、后行断言(?<=y)x

后行断言: 匹配x仅当x前面是y.

案例:

let str = 'xuxiA'
let reg = 

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

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

相关文章

开关电源安规测试标准与测试要求

安规测试是对开关电源进行电气性能、安全性能等检测&#xff0c;确保开关电源符合规定并且安全可靠&#xff0c;为开关电源的质量把关。那么开关电源安规测试有哪些测试要求和标准呢&#xff1f; 开关电源安规测试要求 一、测试前 1. 首先&#xff0c;要检查测试环境&#xff0…

电子商务平台中商品数据采集|API数据接口采集商品的高效性体现

电子商务平台由一个个产品所构成,通过对产品的分析可以有效发掘用户需求,优化店铺产品结构,提升客户粘性、客单价、销售利润等。 一、产品行业数据采集API接口 采集产品行业数据的核心目的是了解该产品的市场需求变化情况,常用到的数据采集指标包括产品搜索指数和产品交易指数两…

项目建设计划书-word

【项目建设计划书-word】 项目描述&#xff08;项目目标&#xff0c;客户需求情况&#xff0c;项目交付清单&#xff0c;验收标准和交付期限&#xff0c;服务及约束&#xff09;项目组织&#xff08;项目组人员架构&#xff0c;职责分工&#xff0c;人员投入安排及时间点安排&…

Python爬虫——Scrapy-1

目录 简介 安装 基本使用 1. 创建爬虫的项目 2. 创建爬虫文件 3. 运行爬虫代码 scrapy项目组成 scrapy工作原理 ​编辑 58同城 scrapy架构组成 汽车之家 总结 简介 Scrapy 是一个基于 Python 的开源网络爬虫框架&#xff0c;它可以帮助开发者快速、高效地构…

MySQL和语言的连接

1.下载开发包 有了之前的基础&#xff0c;就可以使用语言来使用数据库了&#xff0c;实际上原生命令行操作数据库的场景比较少&#xff0c;语言级别的库和包才更加常用&#xff0c;接下我来带您学习如何使用 C/C 访问 MySQL 客户端。 然后创建一个可以远程登录的用户&#xf…

Transformer中的FlashAttention

FlashAttention是一种用于Transformer模型的近似注意力机制&#xff0c;旨在减少注意力计算和内存需求。引入FlashAttention是因为传统Transformer模型中的自注意力机制在处理长序列时存在时间和存储复杂度上的挑战&#xff0c;需要大量的计算资源和内存来处理更长的上下文背景…

【数据结构】二、线性表:6.顺序表和链表的对比不同(从数据结构三要素讨论:逻辑结构、物理结构(存储结构)、数据运算(基本操作))

文章目录 6.对比&#xff1a;顺序表&链表6.1逻辑结构6.2物理结构&#xff08;存储结构&#xff09;6.2.1顺序表6.2.2链表 6.3数据运算&#xff08;基本操作&#xff09;6.3.1初始化6.3.2销毁表6.3.3插入、删除6.3.4查找 6.对比&#xff1a;顺序表&链表 6.1逻辑结构 顺…

禁闭室的乐趣

解法&#xff1a; 暴力 #include<iostream> #include<vector> #include<algorithm> using namespace std; #define endl \n bool cmp(string& a, string& b) {if (a.size() ! b.size())return a.size() > b.size(); } int main() {ios::sync_wi…

【李沐精读系列】GPT、GPT-2和GPT-3论文精读

论文&#xff1a; GPT&#xff1a;Improving Language Understanding by Generative Pre-Training GTP-2&#xff1a;Language Models are Unsupervised Multitask Learners GPT-3&#xff1a;Language Models are Few-Shot Learners 参考&#xff1a;GPT、GPT-2、GPT-3论文精读…

CentOS7 利用remi yum源安装php8.1

目录 前言remi yum源remi yum源 支持的操作系统remi yum源 支持的php版本 安装epel源安装remi源安装 php8.1查看php版本查看php-fpm服务启动php-fpm服务查看php-fpm服务运行状态查看php-fpm服务占用的端口查看 php8.1 相关的应用 前言 CentOS Linux release 7.9.2009 (Core) …

基于java springboot网上蛋糕商城项目设计和实现

基于java springboot网上蛋糕商城项目设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源…

酷克数据荣获粤港澳大湾区金融创新成果“特优解决方案”奖

近日&#xff0c;“第二届金融创新优秀应用案例与解决方案技术成果评定”正式揭晓&#xff0c;酷克数据提交的“HashData云原生金融信创数据仓库”入选特优解决方案&#xff0c;成为数据治理与数据平台类目中唯一的厂商方案。 本次评定历时5个多月&#xff0c;共257个项目参与申…

了解开源可视化表单的主要优势

为什么可视化表单深受大家喜爱&#xff1f;这就需要了解开源可视化表单的优势和特点了。在流程化办公深入人心的今天&#xff0c;提高办公协作效率早已成为大家的发展目标&#xff0c;低代码技术平台、开源可视化表单是提升办公协作效率的得力助手&#xff0c;一起来看看它的优…

项目管理工具及模板(甘特图、OKR周报、任务管理、头脑风暴等)

项目管理常用模板大全&#xff1a; 1. 项目组OKR周报 2. 项目组传统周报工作法 3. 项目甘特图 4. 团队名单 5. 招聘跟进表 6. 出勤统计 7. 年度工作日历 8. 项目工作年计划 9. 版本排期 10. 项目组任务管理 11. 项目规划模板 12. 产品分析报告 13. 头脑风暴 信息化项目建设全套…

什么是TikTok账号权重?打破TikTok0播放的方法

许多TikTok账号运营者都会遇到一个难题&#xff0c;那就是视频要么播放量很低&#xff0c;要么0播放&#xff01;不管内容做的多好&#xff0c;最好都是竹篮打水一场空&#xff01;其实你可能忽略了一个问题&#xff0c;那就是账号权重。下面好好跟大家讲讲这个东西&#xff01…

5V转3.3V/2.5V/1.2V芯片PW2053,专为锂电池设计,低功耗外围简单

在现代电子设备领域&#xff0c;高效、稳定的电源管理至关重要。为了满足这一需求&#xff0c;我们向您隆重推荐PW2053高效同步降压调节器。这款调节器以其出色的性能和广泛的应用领域&#xff0c;赢得了市场的广泛认可。 一、产品描述 PW2053是一款采用恒定频率、电流模式架…

【操作系统概念】 第8章:内存管理

文章目录 0.前言8.1 背景8.1.1 基本硬件8.1.2 地址绑定8.1.3 逻辑地址空间和物理地址空间8.1.4 动态加载&#xff08;dynamic loading&#xff09;8.1.5 动态链接&#xff08;dynamically linking&#xff09;与共享库 8.3 连续内存分配&#xff08;contiguous memory allocati…

防御保护----IPSEC VPPN实验

实验拓扑&#xff1a; 实验背景&#xff1a;FW1和FW2是双机热备的状态。 实验要求&#xff1a;在FW和FW3之间建立一条IPSEC通道&#xff0c;保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 IPSEC VPPN实验配置&#xff08;由于是双机热备状态&#xff0c;所以FW1和FW2只需要…

数据结构——二叉树 原理

1.树 ①树的概念 树是一种非线性的数据结构&#xff0c;它是由(>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#xff0c;称为根结点&#xff0c;根节点没…

CNC机加工引入复合机器人可以提高生产效率,降低成本

CNC加工企业在过去依赖大量的人工来完成生产线上的各项任务&#xff0c;包括CNC机床的上下料、物料搬运以及部分装配工作。然而&#xff0c;随着产能需求的不断增长和人工成本的持续上升&#xff0c;企业逐渐意识到自动化升级的重要性与迫切性。 面临的挑战与需求&#xff1a; …