news 2026/4/17 14:05:09

JS正则表达式实战:核心语法解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JS正则表达式实战:核心语法解析
JS中的正则表达式实例集锦:
部分语法类型核心含义
/.../定界符正则表达式的边界标识(JavaScript/Perl 等语言的标准写法),包裹正则主体。
\.转义字符匹配字面量的点号.。⚠️ 重点:正则中.是通配符(匹配任意单个字符),必须用\转义才能匹配实际的.
()分组符正则的 “分组” 语法,作用是:1. 把括号内的内容视为一个整体;2. 捕获匹配到的内容(可通过 $1/$2 等引用);⚠️ 这里括号内是空的,意味着 “匹配空内容”。
$锚点匹配字符串的结束位置,确保$前面的内容必须出现在字符串最后。
匹配 / 不匹配示例

javascript

// 示例1:匹配 .txt 结尾的文件(把空分组换成 txt) const reg1 = /\.(txt)$/; console.log(reg1.test("note.txt")); // true console.log(reg1.test("note.txt.bak")); // false(结尾不是 .txt) // 示例2:匹配 .json 或 .yml 结尾的文件(分组内加或逻辑) const reg2 = /\.(json|yml)$/; console.log(reg2.test("config.json")); // true console.log(reg2.test("docker.yml")); // true console.log(reg2.test("data.csv")); // false

?正则表达式

用法 1:匹配「前面的字符 / 分组」0 次或 1 次(最基础)

这是你之前在woff2?中看到的用法,也是最常用的。

  • 语法字符?(分组)?
  • 含义:表示它前面紧邻的那个字符 / 分组是「可选的」—— 匹配 0 次(没有)或 1 次(有)。
  • 示例
  • const reg = /^86?1[3-9]\d{9}$/; // 不带区号的 11 位手机号(正常场景) console.log(reg.test('13800138000')); // false console.log(reg.test('19912345678')); // false // 带 86 区号的手机号 console.log(reg.test('8613800138000')); // true console.log(reg.test('8617788990011')); // true // 示例1:匹配 color 或 colour(英式拼写) const reg1 = /colou?r/; console.log(reg1.test('color')); // true(u 出现 0 次) console.log(reg1.test('colour')); // true(u 出现 1 次) console.log('colouur is :',reg1.test('colouur'));// false(u 出现 2 次) // 示例2:匹配手机号(可选带区号 86) const reg2 = /^86?1[3-9]\d{9}$/; console.log('13800138000 is :',reg2.test('13800138000')); // false(86 出现 0 次) console.log(reg2.test('8613800138000')); // true(86 出现 1 次) console.log(reg2.test('88613800138000'));// false(86 多了个 8)

    用法 2:将「贪婪匹配」转为「非贪婪匹配」(重要)

    正则默认是「贪婪模式」(尽可能多匹配),?加在*/+/?/{n,m}后,会变成「非贪婪模式」(尽可能少匹配)。

  • 语法*?/+?/??/{n,m}?
  • 含义:匹配到满足条件的「最短内容」就停止。
  • 示例

    javascript

    const str = '<div>内容1</div><div>内容2</div>'; // 贪婪匹配(默认):匹配从第一个 <div> 到最后一个 </div> 的所有内容 const regGreedy = /<div>.*<\/div>/; console.log(str.match(regGreedy)[0]); // 输出:<div>内容1</div><div>内容2</div> // 非贪婪匹配(加?):匹配第一个 <div> 到最近的 </div> const regNonGreedy = /<div>.*?<\/div>/; console.log(str.match(regNonGreedy)[0]); // 输出:<div>内容1</div>

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:42:31

大模型学习路线图:从小白到AI专家的成长之路_【2026最新】大模型AI产品经理学习路线

文章提供了大模型产品经理从零基础到精通的完整学习路线&#xff0c;涵盖基础知识、大模型技术、产品管理、实战经验和持续学习五大阶段。同时介绍了大模型在教育、医疗、金融等领域的应用场景&#xff0c;并提供了学习资源获取方式。这条系统性学习路径旨在帮助读者掌握大模型…

作者头像 李华
网站建设 2026/4/18 0:27:02

系统软件出现msvcp140.dll文件找不到 如何修复? 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/18 0:26:42

paperxie 毕业论文写作工具:解锁高效学术创作的智能密钥

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippt https://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 在学术评价体系日趋严格的当下&#xff0c;毕业论文不仅是学生学业生涯的收官之作&#xff0c;更是衡量其科研能…

作者头像 李华
网站建设 2026/4/18 0:30:10

Android16 设置AP热点不自动关闭和热点默认设置5G

1.让ap热点不自动关闭: packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml <integer translatable="false" name="config_wifiFrameworkSoftApShutDownTimeoutMilliseconds">600000</integer> 修改为: <int…

作者头像 李华
网站建设 2026/4/17 7:43:52

AI agents协作分析社交网络:评估公司的社会影响力

AI agents协作分析社交网络&#xff1a;评估公司的社会影响力关键词&#xff1a;AI agents、社交网络分析、公司社会影响力评估、协作机制、数据挖掘摘要&#xff1a;本文聚焦于利用AI agents协作分析社交网络来评估公司的社会影响力。首先介绍了研究背景、目的和预期读者等内容…

作者头像 李华