登录
首页 >  文章 >  前端

JS正则表达式使用教程

时间:2026-02-01 22:45:44 261浏览 收藏

大家好,今天本人给大家带来文章《JavaScript正则表达式怎么用》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

JavaScript正则表达式是内置RegExp对象与字符串方法协同工作的文本模式描述语言,非语法糖;字面量与new RegExp()创建方式在转义、动态构建上行为不同;test()、match()、replace()等方法因全局标志g和返回值类型差异表现各异;点号、贪婪匹配、Unicode处理存在常见陷阱。

javascript正则表达式是什么_如何用它匹配文本【教程】

JavaScript 正则表达式不是“特殊语法糖”,而是内置的 RegExp 对象和字符串方法协同工作的机制——它本质是一套文本模式描述语言,由 JS 引擎原生支持解析与执行。

正则表达式字面量 vs new RegExp() 构造函数

两种创建方式行为不完全等价,尤其在转义和动态构建时容易出错。

  • 字面量写法:/\d{3}-\d{4}/,斜杠间的内容直接作为模式,不可拼接变量
  • new RegExp() 接收字符串参数,需对反斜杠双重转义:new RegExp("\\d{3}-\\d{4}");若从变量构造(如用户输入),这是唯一选择
  • 动态构造时,new RegExp(pattern, flags)flags(如 "gi")不能写在字符串里,否则会报错:new RegExp("/\\d/gi")

常用字符串方法:test()、match()、replace() 的差异

同一正则在不同方法中表现不同,主要取决于全局标志 g 和返回值类型。

  • regex.test(str):只返回 true/false,但带 g 标志时会修改正则对象的 lastIndex,连续调用可能漏匹配(尤其在循环中复用同一正则)
  • str.match(regex):无 g 时返回含 indexgroups 的数组;有 g 时只返回纯匹配字符串数组,丢失位置信息
  • str.replace(regex, replacement)replacement 可以是字符串(支持 $1 引用捕获组)或函数(接收匹配项、分组、索引、原字符串)

常见陷阱:点号、贪婪匹配、Unicode 字符

看似简单的元字符,在真实文本中常因边界理解偏差导致误匹配。

  • . 默认不匹配换行符(\n\r),要跨行匹配需加 s 标志(ES2018+):/a.b/s
  • *+? 默认贪婪,比如 /a.*b/"a1b2b" 中匹配整个字符串;改用惰性量词:/a.*?b/ 匹配 "a1b"
  • 中文、emoji 等 Unicode 字符可能被拆成多个码元,\w\b 在非 ASCII 场景下不可靠;应使用 u 标志 + \p{Script=Han} 等 Unicode 属性类(需环境支持)

真正难的不是写出能跑的正则,而是预判它在边界输入(空字符串、嵌套结构、编码异常)下的行为。每次写完建议用 console.log(regex.toString()) 确认实际模式,再拿几个典型和边缘样例手动过一遍。

今天关于《JS正则表达式使用教程》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>