当前位置: 首页 > article >正文

【前端】JS引擎 v.s. 正则表达式引擎

  • JS引擎 v.s. 正则表达式引擎
    它们的转义符都是\
    经过JS引擎会进行一次转义
    经过正则表达式会进行一次转义
  • 在一次转义中\\\\\的转义过程:
    第一个 \ (转义符) 会“吃掉”第二个 \,结果是得到一个字面量的 \。
    第三个 \ (转义符) 会“吃掉”第四个 \,结果是得到另一个字面量的 \。
    第五个剩下
    最终结果: 字符串中会包含3个字面量的反斜杠。
  • \d{4}*这种表达是错误的,因为*表示d{4}重复0~N次,前面必须放一个表示新字符的表达式。如.
  • 练习
    这个dataPattern能匹配什么内容?
const str=`
<script>
(function(){
const Patternstr ="\/\\\\\d{4}\/\\\\\d{2}\/\\\\\d{2}\/\.*"; 
const dataPattern = new RegExp(Patternstr);
})()
</script>`
// 把目录div插入到</body>标签前面
html = html.replace(/<\/body>/, str + '</body>');

解析:

  1. 模板字串 (backtick ``)中\也是转义符,Patternstr变为/\\\d{4}/\\\d{2}/\\\d{2}/.*";
  2. 经过 JavaScript 字串解析器处理,Patternstr变为/\\d{4}/\\d{2}/\\d{2}/.*
  3. 经过正则表达式引擎解析,Patternstr变为/\d{4}/\d{2}/\d{2}/.*
  4. 根据正则表达式,可知形如/2025/05/28/.....这类字符串可以被成功匹配
  • 补充
    在 JavaScript 中,.test() 和 .match() 都是 RegExp (正则表达式) 对象或字符串对象的方法,用于执行正则表达式匹配操作。它们的主要区别在于返回值的类型和目的。
    当你只需要判断字符串中是否存在某个模式时,使用 .test()。 它的性能通常比 .match() 更好,因为它一旦找到匹配就会立即返回 true,不需要构建并返回完整的匹配数组。
    当你需要获取匹配到的具体内容、匹配位置或所有匹配项时,使用 .match()。
http://www.lryc.cn/news/2393421.html

相关文章:

  • 开发体育平台,怎么接入最合适的数据接口
  • 3D虚拟工厂
  • http传输协议的加密
  • 半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司
  • 嵌入式(1):STM32 GPIO与AFIO深度解析:从原理到高阶应用实战
  • Netty 实战篇:Netty RPC 框架整合 Spring Boot,迈向工程化
  • QML视图组件ListView、TableView、GridView介绍
  • 常见压缩算法性能和压缩率对比 LZ4 LZO ZSTD SNAPPY
  • Spring Boot 应用中实现配置文件敏感信息加密解密方案
  • 【TTS】基于GRPO的流匹配文本到语音改进:F5R-TTS
  • 动态规划-152.乘积最大子数组-力扣(LeetCode)
  • 1-1 初探Dart编程语言
  • 搭建最新版开源监控平台SigNoz踩的坑
  • Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南 免费内网穿透家用服务器
  • 无人机多人协同控制技术解析
  • 【东枫科技】KrakenSDR 测向快速入门指南
  • 使用LangChain与多模态模型实现图像中的文字和表格提取(PDF可转图片)
  • 【Redis】hash
  • 基于Vite的前端自动化部署方案
  • antDesignVue中a-upload上传组件的使用
  • 龙舟竞渡与芯片制造的共通逻辑:华芯邦的文化破局之道
  • 机房网络设备操作安全管理制度
  • CentOS中安装Docker Compose
  • Linux Kernel动态调试:运行时调试的利器
  • Milvus分区-分片-段结构详解与最佳实践
  • 5月课程精彩回顾 | 2025高通边缘智能创新应用大赛系列公开课
  • 设计模式25——中介者模式
  • 阿里云配置安全组策略开放端口
  • uniapp 搭配uviwe u-picker 实现地区联栋
  • win10电脑时间同步失败的解决方法