Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js string.replace()方法的索引范围_Javascript_Node.js - Fatal编程技术网

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)