Javascript js string.replace()方法的索引范围
我需要一个函数来替换字符串,但在一定的索引范围内。就像上面的链接一样。 但在这种情况下,没有任何答案可以帮助我Javascript js string.replace()方法的索引范围,javascript,node.js,Javascript,Node.js,我需要一个函数来替换字符串,但在一定的索引范围内。就像上面的链接一样。 但在这种情况下,没有任何答案可以帮助我 var param=[{start:3,end:14},{start:19,end:Infinity}]; var str='foo foo foo foo foo foo'; 变量输出=repStr( str,//要分配的字符串 (…param),//对象数组或具有“start”和“end”属性的对象 新的RegExp(//(foo)/g),//regex(find) 'bar'//
var param=[{start:3,end:14},{start:19,end:Infinity}];
var str='foo foo foo foo foo foo';
变量输出=repStr(
str,//要分配的字符串
(…param),//对象数组或具有“start”和“end”属性的对象
新的RegExp(//(foo)/g),//regex(find)
'bar'//替换字符串
);
控制台日志(输出);
//预期输出:“foo-bar foo-foo-bar”
我想做repStr
函数。
它需要支持正则表达式和数组范围参数,我真的需要它们。
任何帮助都将不胜感激。您可以使用的回调的第二个最后参数(实际索引)来检查想要的范围 顺便说一句,在给定的范围内,您的结果应该会有点不同
constrepstr=(string,regexp,replacement,ranges)=>string.replace(regexp,(…p)=>{
常数指数=p[p.length-2];
返回范围。一些({start,end})=>start您可以使用的回调的第二个最后参数(实际索引)来检查想要的范围
顺便说一句,在给定的范围内,您的结果应该会有点不同
constrepstr=(string,regexp,replacement,ranges)=>string.replace(regexp,(…p)=>{
常数指数=p[p.length-2];
返回范围。一些({start,end})=>start您可以替换“params”中所有范围之间的子字符串中“foo”的所有实例
可以在“参数”的所有范围之间的子字符串中替换“foo”的所有实例
您是否有其他示例,其中替换内容更易于查看?我已编辑了我的帖子*。很抱歉给您带来不便。您是否有其他示例,其中替换内容更易于查看?我已编辑了我的帖子*。很抱歉给您带来不便。请在您的回答中添加一些解释,以便其他人可以从中学习。请在您的回答中添加一些解释回答时要让别人能从中学习
param.reduce((acc,cur) =>(
acc.substring(0,cur.start)+
acc.substring(cur.start,cur.end).replace(/foo/g,'bar')+
acc.substring(cur.end)
),str)