JavaScript中的正则表达式通过字面量或构造函数创建,常用标志位有g、i、m、u;利用捕获组()提取数据,非捕获组(?:)提升性能;常见应用包括邮箱、手机号匹配,URL参数提取及空白行过滤;结合replace与函数可实现动态替换,如驼峰转短横线、数字加倍等;复杂场景建议结合其他方法以保持代码可读性。

JavaScript 中的正则表达式是处理字符串匹配和替换的强大工具。掌握一些实用的模式匹配技巧,能显著提升文本处理效率。下面介绍几种常见且高效的用法。
基本语法与标志位
在 JS 中,正则表达式可以用字面量或构造函数创建:
- /pattern/g —— 字面量形式,简洁直观
- new RegExp("pattern", "g") —— 动态构建时更灵活
常用标志位包括:
- g:全局匹配,查找所有匹配项
- i:忽略大小写
- m:多行模式,^ 和 $ 匹配每行开头结尾
- u:启用 Unicode 模式,正确处理 emoji 和特殊字符
捕获与分组技巧
使用括号 () 可以创建捕获组,提取感兴趣的部分。
例如,从日期字符串中提取年月日:
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/;const result = "2024-04-05".match(dateRegex);result 数组中,index 1~3 分别对应年、月、日。
若不需要捕获,可用非捕获组 (?:...) 提升性能:
/https?:\/\/(?:www\.)?example\.com/常用匹配模式实战
以下是一些高频使用场景及对应正则:
Dbsite企业网站管理系统V1.5.0 秉承"大道至简 邦达天下"的设计理念,以灵巧、简单的架构模式构建本管理系统。可根据需求可配置多种类型数据库(当前压缩包支持Access).系统是对多年企业网站设计经验的总结。特别适合于中小型企业网站建设使用。压缩包内包含通用企业网站模板一套,可以用来了解系统标签和设计网站使用。QQ技术交流群:115197646 系统特点:1.数据与页
- 邮箱验证:/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
- 手机号(中国大陆):/^1[3-9]\d{9}$/
- 提取 URL 参数:/(? 匹配参数值
- 过滤空白行:/^\s*$/m 配合 replace 删除空行
注意转义特殊字符,如点号 \.、反斜杠 \\。
replace 与函数替换
replace 方法结合正则和函数,可实现智能替换。
比如将驼峰命名转为短横线连接:
"myNameIsJohn".replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();或使用函数动态处理:
text.replace(/\b\d+\b/g, match => parseInt(match) * 2);函数接收匹配内容作为参数,返回替换值,灵活性更强。
基本上就这些核心技巧。正则虽强大,但也别过度依赖。复杂场景建议结合字符串方法或专用库处理,保持代码可读性。









