2010.10.19——— String.replace(reg,function)
从所周知 replace() 方法用于在字符串中用一些字符替换另一些字符
一般用法
但是 其实replace里面是可以跟function的
结果:
在看一个例子:
结果
再看一个:
结果
可以看出 函数里面
从所周知 replace() 方法用于在字符串中用一些字符替换另一些字符
一般用法
"xiaodu".replace(/du/,"");//把du替换为空
但是 其实replace里面是可以跟function的
"<div></div>".replace(/\w/g,function(str,i,o){
alert(str+"=="+i+"=="+o);
});
结果:
d==1==<div></div>
i==2==<div></div>
v==3==<div></div>
d==7==<div></div>
i==8==<div></div>
v==9==<div></div>
在看一个例子:
"<div></div>".replace(/(\w+)v/g,function(str,s1,i,o){
console.log(all+"=="+front+"=="+tag+"=="+o);
});
结果
div==di==1==<div></div>
div==di==7==<div></div>
再看一个:
var str = "<div fdsaf/>".replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag,i,o){
console.log(all+"=="+front+"=="+tag+"=="+i+"=="+o);
return tag.match(/^(div)$/i) ? all :front + "></" + tag + ">";
});
结果
<div fdsaf/>==<div fdsaf==div==0==<div fdsaf/>
可以看出 函数里面
第一个参数:符合正则表达式的值
然后的值 都是正则表达式里面分组(即"()"里面的值)的值
倒数二个参数:符合正则表达式的位置(从0开始)
最后一个参数:原字符串