JavaScript replace() 方法详解:语法、参数与实战案例
本文深入解析JavaScript中String对象的replace()方法。详细阐述其语法结构,包括正则表达式与全局标志g的作用,以及replacement参数作为字符串或函数的两种模式。通过多个实战案例,演示如何执行单次替换、全局替换、大小写转换及字符串重组,帮助开发者掌握高级字符串处理技巧。
replace() 方法基础语法与返回值
概述与语法规范 replace() 函数旨在字符串内执行字符替换操作,或依据正则表达式匹配结果替换子串。 语法格式 stringObject.replace(regexp/substr,replacement)

返回结果 生成新字符串,其内容为原字符串经 replacement 替换 regexp 首次或全部匹配项后的状态。 机制解析 stringObject 的 replace() 方法执行查找并替换逻辑。它定位 stringObject 中与 regexp 匹配的子串,并以 replacement 进行替换。若 regexp 包含全局标志 g,则执行所有匹配子串的替换;否则仅替换首个匹配项。
replacement 参数类型可为字符串或函数。若为字符串,每个匹配项均按该字符串替换。需注意 replacement 中 $ 字符具备特殊语义,具体映射规则见下表,指示从模式匹配捕获的字符串如何用于替换。

replacement 参数的高级用法
关键提示:依据 ECMAScript v3 规范,replace() 方法的 replacement 参数允许为函数而非字符串。此时,每个匹配项均触发该函数调用,其返回值作为替换文本。函数首个参数为匹配模式的完整字符串。后续参数对应模式内子表达式的匹配字符串,数量可为零或多个。随后参数为整数,标识匹配项在 stringObject 中的起始位置。末个参数为 stringObject 自身。 示例演示 案例 1 本例展示将字符串中的 "Microsoft" 替换为 "W3School":
replace() 实战案例解析
<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "jb51"))
</script>
运行结果:Visit jb51! 案例 2 本例演示全局替换操作,每次检测到 "Microsoft" 即替换为 "W3School":
<script type="text/javascript">
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."
document.write(str.replace(/Microsoft/g, "jb51"))
</script>
运行结果: Welcome to jb51! We are proud to announce that jb1
has one of the largest Web Developers sites in the world. 案例 3 利用本例代码可确保匹配字符串的大小写格式正确:
text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");
运行结果:javascript Tutorial 案例 4 本例演示将 "Doe, John" 格式转换为 "John Doe":
name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
运行结果:John Doe 案例 5 本例演示将字符串中的所有花引号替换为直引号:
name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'");
运行结果:'a', 'b' 案例 6 本例演示将字符串中所有单词的首字母转换为大写:
name = 'aaa bbb ccc';
uw=name.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
运行结果:Aaa Bbb Ccc
通过本文基础学习,读者应已掌握 javascript 中 replace() 方法的核心用法,结合实例练习将有助于提升学习效果。
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
