正则表达式替换能指定次数吗

locket 2009-06-16 03:13:41
RegExp(str,'gi');
如果我只想替换2次,3次或n次,该如何写
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
来个怪的
var s="123 123, ddd 123 ff 123 fff 123,123,123,123";
function replace(source,strF,strR,n){
var a=s.split(strF);
s=a.slice(0,n+1).join(strR)+(a.length>n+1?strF:"")+a.slice(n+1).join(strF);
return s;
}

alert(replace(s,123,"[]",5));
cuixiping 2009-06-17
  • 打赏
  • 举报
回复
str.replace(regexp, (function(){
var limit = 3; // 替换次数
return function(m){ return 0 > --limit ? m : 'your replace'; }
})());

正解。
js闭包应用。
monexus 2009-06-16
  • 打赏
  • 举报
回复
str.replace(regexp, (function(){
var limit = 3; // 替换次数
return function(m){
return 0 > --limit ? m : 'your replace';
}
})());
xiongzhijian 2009-06-16
  • 打赏
  • 举报
回复

var count = 0;
function f2c(s,n) {
var test = /(\d+(\.\d*)?)F\b/g; // 初始化模式。
return(s.replace
(test,
function($0,$1,$2) {
count < n ? return((($1-32) * 5/9) + "C") : return $1;
count++;
}
)
);
}

document.write(f2c("Water freezes at 32F and boils at 212F. Water freezes at 32F and boils at 212F",3));


xiongzhijian 2009-06-16
  • 打赏
  • 举报
回复

var count = 0;
function f2c(s,n) {
var test = /(\d+(\.\d*)?)F\b/g; // 初始化模式。
return(s.replace
(test,
function($0,$1,$2) {
count < n ? return((($1-32) * 5/9) + "C") : return $1;
count++;
}
)
);
document.write(f2c("Water freezes at 32F and boils at 212F. Water freezes at 32F and boils at 212F",3));
}

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧