js 字符串替换replace()详解

本文详细介绍了JavaScript中使用replace()方法进行字符串替换的具体方法,包括如何替换首个匹配项及所有匹配项,并提供了实例代码。此外还介绍了如何通过正则表达式进行全局替换,以及如何更改特定位置的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



1. replace()方法:替换字符串

JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符,如:例1. 而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志),如:例2。 

例:1

<script language="javascript">
var stringObj="我是一名大学生,大学生";

//替换错别字“大学生”为“医生”
//并返回替换后的新字符
//原字符串stringObj的值没有改变
var newstr=stringObj.replace("大学生","医生"); 
alert(newstr);
</script>

例1只会替换掉字符中的第一个’大学生‘,而第二个并没有被替换,下面例2,将改成用正则的方法,即可全部替换。

例:2 两种写法都可以

<script language="javascript">
//创建正则RegExp对象
var reg=new RegExp("大学生","g"); 
var stringObj="我是一名大学生,大学生。";
var newstr=stringObj.replace(reg,"医生"); 
//或者这种写法:
//var newstr=stringObj.replace(/\大学生/g,"医生"); 
alert(newstr);
</script>



还有就是查找某些字体,呈现不同的效果,比如改变颜色等等的方法:

<script language="javascript">    
var s=prompt("请输入在查找的字符","大");    
var reg=new RegExp("("+s+")","g");    
var str="我是一名大学生,大学生!";    
var newstr=str.replace(reg,"<font color=red>$1</font>");    
document.write(newstr);    
</script> 

到这里那么有一个问题来了,如果我们想要替换指定位置的字符串是怎么实现的呢,这里我封装了一个方法:

<script language="javascript">    
function transform(str, begin, end, char) {
  var fstStr = str.substring(0, begin);
  var lstStr = str.substring(end, str.length);
  return fstStr + char + lstStr;
}   
</script> 


这里一共有4个参数,str,要替换的字符串,begin替换起始位置,end替换结束位置,char替代查找到的字符串,

注意:end位置的字符是会保留的,因为substring()方法截取字符串包括开始位置的,单不包括结束位置的。

详情请见我的另一篇详解:

http://blog.youkuaiyun.com/u012964143/article/details/44154471

   









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值