Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 通过提供起始点和结束点替换字符串中的单词只替换第一个匹配项_Javascript_Regex_Replace - Fatal编程技术网

Javascript 通过提供起始点和结束点替换字符串中的单词只替换第一个匹配项

Javascript 通过提供起始点和结束点替换字符串中的单词只替换第一个匹配项,javascript,regex,replace,Javascript,Regex,Replace,这是我的密码 var str = 'test test'; var start = 5; var end = 9; var val = 'success'; var ta1 = $("#textbox").val(); $("#textbox").val(ta1.replace(ta1.substr(start,end),val));

这是我的密码

var str = 'test test';              
var start = 5;               
var end = 9;                
var val = 'success';                 
var ta1 = $("#textbox").val();        
$("#textbox").val(ta1.replace(ta1.substr(start,end),val));               
其输出为=
成功测试

但是我想给出开始点和结束点来替换字符串中的第二个测试词。我怎么做


也许有其他替代方法可以替换?

您可以在回调函数中检查偏移量:

var start=9;
var-end=16;
var val=‘成功’;
var ta1=$(“#文本框”).val();
rx=RegExp(ta1.substr(start,end-start),“g”);//RegExp由全局标志组成,用于测试所有匹配项
控制台日志(rx);
$(“#文本框”).val(ta1.replace(rx,函数(m,偏移,输入){
var result=offset==start?val:m;//这里,我们检查偏移量是否是我们的开始位置
返回结果;
}));

这
是
测试

测试
您的意思是要使用mutliple替换吗?将
RegExp
g
修饰符一起使用<代码>$(“#文本框”).val(ta1.replace(RegExp(ta1.substr(start,end),“g”),val))是否需要更换所有的
测试?看,它是否像var str='test-test';str.replace(/(test)/g,'success')我想通过给出start和end来更改字符串中的第二个测试points@MJunaidAslam请核对我的答案。我找到了一种方法,只替换必要的匹配项,并保持其他匹配项完好无损。如果我在范围内选择一个文本,它将复制该文本和字符串末尾的其他文本,则该方法无效。不要替换精确的文本。它不适用于具有多行的textarea。请在此文本区域中添加打断k行。测试和断线在哪里?
start
end
看起来像什么?请给我一把小提琴。或者将其添加到问题本身。这里有精确的代码,我想替换字符串中的测试,谢谢。请参阅控制台:1)要替换的子字符串看起来像
s\ntesting\nte
,2)代码段的问题是最后一个未配对的
}
,3)我得到的结果是
this\nisuccessst
-不确定这是预期的,但代码100%正常工作。顺便说一句,您可以通过
console.log(rx.source)看到已编译正则表达式的模式