JavaScript正则表达式是匹配字符串模式的对象,可用字面量(/pattern/flags)或构造函数(new RegExp("pattern","flags"))创建;常用修饰符有g(全局)、i(忽略大小写)、m(多行)、s(.匹配换行符);核心方法包括test(验证)、exec(匹配详情)、match(提取)、replace(替换)、split(分割)。
JavaScript中的正则表达式(Regular Expression,简称RegExp)是一种用于匹配字符串中字符组合的模式工具。它不是字符串本身,而是一个对象,用来描述、查找、替换或验证文本是否符合某种规则。
你可以用字面量语法或构造函数来创建正则表达式:
/abc/g —— 简洁,适合静态模式new RegExp("abc", "g") —— 适合动态生成模式(例如从用户输入拼接)注意:用构造函数时,反斜杠要双写("\\d+"),因为字符串本身会先解析一次转义。
修饰符决定匹配行为,可单独或组合使用:
/HELLO/i 能匹配 "hello"
^ 和 $ 匹配每行起始/结尾,不只是整个字符串. 匹配包括换行符在内的所有字符正则对象和字符串都提供匹配方法,用途不同:
regex.test(str):返回 true 或 false,常用于表单验证(比如邮箱格式)regex.exec(str):返回匹配结果数组(含 index、input 等属性),配合 g 标志可循环调用找全部匹配str.match(regex):类似 exec,但对非全局正则返回详细数组,全局时只返回匹配内容(无捕获组信息)str.replace(regex, replacement):替换匹配内容,支持字符串或函数作为替换值str.split(regex):按匹配结果切分字符串,比如用 /\\s+/ 拆分多个空格快速上手常见场景:
"Price: $19.99, Qty: 5".match(/\d+/g) → ["19", "99", "5"]
/^1[3-9]\d{9}$/.test("13812345678")
"a b\t\tc".replace(/\s+/g, " ") → "a b c"
"user@example.com".match(/^([^@]+)@/)[1] → "user"
不复杂但容易忽略细节,掌握基础模式和这几个方法,日常开发已经够用。