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 = "[color=#FF0000]优快云[/color]的论坛,是中国[color=#FF00FF]最大[/color]的技术论坛";
str = str.replace(//[color=(.+?)/]/ig, '<font color="$1">').replace(//[//color/]/ig, '</font>'); //$1会替换 正则中()的部分
//结果<font color=#FF0000>优快云</font>的论坛,是中国<font color=#FF00FF>最大</font>的技术论坛 优快云的论坛,是中国最大的技术论坛
2)如图片
str = str.replace(//[img=(/S+?)/](.*?)/[//img/]/ig, '<img src="$1" border="0" alt="" />');
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;
}
其它类似,主要是结合正则表达式。