JS:正则表达式中的替换 replace(内容包含匹配模式)
封面图
•
2026-01-17
•
JavaScript
234
0
0
0
在 JavaScript 中,`String.prototype.replace()` 方法可以用于替换字符串中匹配正则表达式的内容。它有两种主要用法: --- ### ✅ 1. 替换一个固定字符串或一个正则表达式 ```javascript const str = "Hello, world!"; const newStr = str.replace("world", "JavaScript"); console.log(newStr); // 输出: Hello, JavaScript! ``` 如果使用正则表达式(例如忽略大小写): ```javascript const str = "Hello, World!"; const newStr = str.replace(/world/i, "JavaScript"); console.log(newStr); // 输出: Hello, JavaScript! ``` --- ### ✅ 2. 使用函数作为替换内容(更高级的用法) 你可以传入一个函数作为 `replace()` 的第二个参数,这个函数会在每次匹配时被调用,返回要替换成的内容。 #### 示例:将所有数字替换为它们的平方 ```javascript const str = "The numbers are 1, 2, 3."; const newStr = str.replace(/\d+/g, function(match) { return match * match; }); console.log(newStr); // 输出: The numbers are 1, 4, 9. ``` --- ### ✅ 3. 使用捕获组(Capture Groups) 如果你需要在替换时引用匹配的部分,可以使用 `$1`, `$2` 等来表示正则中的捕获组。 #### 示例:把 “name” 改为 “full name” ```javascript const str = "My name is John."; const newStr = str.replace(/name/, "full $&"); console.log(newStr); // 输出: My full name is John. ``` 或者使用捕获组: ```javascript const str = "John Doe"; const newStr = str.replace(/(\w+)\s+(\w+)/, "$2, $1"); console.log(newStr); // 输出: Doe, John ``` --- ### ✅ 4. 全局替换(使用 `/g` 标志) 默认情况下,`replace()` 只替换第一个匹配项。要替换所有匹配项,必须加上 `/g` 标志。 ```javascript const str = "apple apple apple"; const newStr = str.replace(/apple/g, "orange"); console.log(newStr); // 输出: orange orange orange ``` --- ### ✅ 5. 保留原匹配内容并修改 你可以在替换时保留原匹配内容,并进行修改: ```javascript const str = "Hello, world!"; const newStr = str.replace(/(world)/, "my $1"); console.log(newStr); // 输出: Hello, my world! ``` --- ### 总结 | 用法 | 示例 | 说明 | |------|------|------| | 字符串替换 | `str.replace("old", "new")` | 简单替换 | | 正则表达式替换 | `str.replace(/old/g, "new")` | 支持模式匹配和全局替换 | | 函数替换 | `str.replace(/pattern/, function(match) { ... })` | 动态替换 | | 捕获组替换 | `str.replace(/(\w+)\s+(\w+)/, "$2, $1")` | 引用匹配内容 | --- 如果你有具体的替换需求(比如替换 URL、邮箱、特定格式等),欢迎告诉我,我可以帮你写出对应的正则表达式。
上一篇:
JS转换 HTML 字符实体
下一篇:
javascript监听input输入框值的实时变化
标题录入,一次不能超过6条
留言
评论