您的位置:首页 > Web前端 > JavaScript

js 字符串替换replace()详解

2015-03-09 13:49 232 查看

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.csdn.net/u012964143/article/details/44154471
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js replace 替换