Javascript中replace方法(转)

Javascript中的replace方法用的是非常多的。

1、 简单使用

Js中的repalce替换默认只替换一次(个),如下:

var Str = “a^b^c^d”;

var newStr = Str.replace(“/^”, “|”); // a|b^c^d 由于^是特殊字符用到了/

var newStr = Str.replace(//^/, “|”); //效果一样

var newStr = Str.replace(/A/i, “f”); //i 是 不区分大小写,结果:f^b^c^d

2、 全局替换

var newStr = Str.replace(//^/g, “|”); //a|b|c|d 多次替换后面加g 或ig i是大小写匹配

3、 复杂的用法(正则表达式)

好多编辑器的字体 样式等都是js的replace替换的。

  1. 如:字体颜色

var str = “CSDN的论坛,是中国最大的技术论坛”;

str = str.replace(///ig, ‘’).replace(//[//color/]/ig, ‘’); //$1会替换 正则中()的部分

//结果CSDN的论坛,是中国最大的技术论坛 CSDN的论坛,是中国最大的技术论坛

2)如图片

str = str.replace(//img=(/S+?)//[//img/]/ig, ‘’);

3)如:插入flash、视频等。

replace中使用函数

var str = "[swf=http://player.youku.com/player.php/sid/XMjE3OTk5NDMy/v.swf][/swf]";
str = str.replace(//[swf=(/S+?)/]/[//swf/]/ig, function($$$$1, $$$$2) { return flash($$$$2); })
//str = str.replace(//[movie=(/S+?)/](.*?)/[//movie/]/ig, function($$$$1, $$$$2) { return flash($$$$2); });
function flash(url) {
var strSb = "<OBJECT ID='flashgame' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0' width='200' height='100'>/n";
strSb += "<PARAM NAME='allowScriptAccess' VALUE='never'>/n";
strSb += "<PARAM NAME='allowNetworking' VALUE='internal'>/n";
strSb += "<PARAM NAME='movie' VALUE='" + url + "'>/n";
strSb += "<embed id='flashgame1' name='flashgame' src='" + url + "' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='200' height='100' allowScriptAccess='nerver' allowNetworking='internal'></embed>";
strSb += "<PARAM NAME='quality' VALUE='high'>/n";
strSb += "</OBJECT>/n";
return strSb;
}

其它类似,主要是结合正则表达式。