本文介绍 JavaScript 中 String.replace 方法的两种用法。默认情况下,replace 仅替换第一个匹配项。要实现全局替换所有目标字符,需将第一个参数改为正则表达式,并添加 'g' 标志。通过对比字符串字面量与正则表达式的执行结果,清晰展示全局替换的实现方式。
JavaScript Replace 默认行为与全局替换实现
在 JavaScript 脚本中,定义一个包含换行符的字符串变量 r,其内容为 "1\n2\n3\n"。接着调用 replace 方法,尝试将字符 "\n" 替换为分号 ";"。代码执行后通过 alert 弹窗显示结果。
运行上述代码,弹窗显示结果为 "1;2\n3\n"。这表明 replace 方法默认只替换字符串中第一次出现的匹配项,后续的换行符未被替换。
<script language="javascript"> var r= "1\n2\n3\n"; //将字母\n替换成分号 alert(r.replace(/\n/g, ";"));
此时弹窗显示结果为 "1;2;3;"。这说明当 replace 的第一个参数使用正则表达式,并包含 'g' 标志时,可以实现全文匹配并替换所有符合条件的字符。