2010.10.19——— String.replace(reg,function)

2010.10.19——— String.replace(reg,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开始)
最后一个参数:原字符串
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值