在JavaScript中,我们可以使用replace()方法来用一个字符串替换另外一个字符串的某一部分。
语法:
字符串名.replace(原字符串, 替换字符串) 字符串名.replace(正则表达式, 替换字符串)
说明:
replace()方法有2种使用形式:一种是直接使用字符串来替换;另外一种是使用正则表达式来替换。不管是哪种形式,“替换字符串”都是第2个参数。
举例:直接使用字符串替换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
var str = "I love javascript!";
var str_new = str.replace("javascript", "lvye");
document.write(str_new);
</script>
</head>
<body>
</body>
</html>
浏览器预览效果如图所示。
分析:
str.replace(“javascript”,“lvye”)表示用"lvye"替换str中的"javascript"。
举例:使用“正则表达式”替换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
var str = "I am loser, you are loser, all are loser.";
var str_new = str.replace(/loser/g, "hero");
document.write(str_new);
</script>
</head>
<body>
</body>
</html>
浏览器预览效果如图所示。
分析:
str.replace(/loser/g, “hero”)表示使用正则表达式/loser/g结合替换字符串"hero",来将字符串str中的所有字符“loser”替换成“hero”。
有些小伙伴会觉得str.replace(/loser/g, “hero”)不就等价于str.replace(“loser”, “hero”)吗?其实这两个是不一样的,大家可以测试一下。前者会替换所有的“loser”,而后者只会替换第1个“loser”。
在实际开发中,当我们直接使用字符串无法实现时,记得考虑使用正则表达式。正则表达式比较复杂,如果想要深入了解,可以看一下绿叶学习网开源的正则表达式教程。由于内容过多,这里就不详细展开了。