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)看到已编译正则表达式的模式代码>。