这是我的代码
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));
其输出为= success test
但是我想给出起点和终点来替换字符串中的第二个测试单词。我该怎么做 ?
也许还有一些替代方案可供选择?
答案 0 :(得分:0)
您可以检查回调函数中的偏移量:
var start = 9;
var end = 16;
var val = 'success';
var ta1 = $("#textbox").val();
rx = RegExp(ta1.substr(start,end - start), "g"); // RegExp is formed with global flag to test all matches
console.log(rx);
$("#textbox").val(ta1.replace(rx, function(m, offset, input) {
var result = offset === start ? val : m; // Here, we check if the offset is our start position
return result;
}));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="textbox" rows="20">this
is
testing
test</textarea>
&#13;
所以,基本上,你需要:
substr
函数