Javascript 替换在给定偏移量之后出现的子字符串

Javascript 替换在给定偏移量之后出现的子字符串,javascript,replace,substring,Javascript,Replace,Substring,我有一个字符串,其格式如下: 'User ID: 2894, Task ID: 68, Some other text' 假设我需要将此字符串转换为以下内容: 'User ID: 2684, Task ID: <replaced>, Some other text' 将前缀添加到replace函数中 var str = 'User ID: 2894, Task ID: 68, Some other text'; var prefix = 'Task ID: '; var newS

我有一个字符串,其格式如下:

'User ID: 2894, Task ID: 68, Some other text'
假设我需要将此字符串转换为以下内容:

'User ID: 2684, Task ID: <replaced>, Some other text'

将前缀添加到replace函数中

var str = 'User ID: 2894, Task ID: 68, Some other text';
var prefix = 'Task ID: ';
var newStr = str.replace(prefix + '68', prefix + '<replaced>');
alert(newStr);
var str='User-ID:2894,Task-ID:68,其他一些文本';
变量前缀='任务ID:';
var newStr=str.replace(前缀+'68',前缀+'';
警报(newStr);

将前缀添加到replace函数中

var str = 'User ID: 2894, Task ID: 68, Some other text';
var prefix = 'Task ID: ';
var newStr = str.replace(prefix + '68', prefix + '<replaced>');
alert(newStr);
var str='User-ID:2894,Task-ID:68,其他一些文本';
变量前缀='任务ID:';
var newStr=str.replace(前缀+'68',前缀+'';
警报(newStr);

备选答案。不易出错。如果这个字符串是JSON,那么使用它肯定会更容易

var targetId = '68';

var str = 'User ID: 2894, Task ID: 68, Some other text';
var items = str.split(', ');
var prefix = 'Task ID: ';

var foundIndex = items.indexOf(prefix + targetId);
if(foundIndex > -1){
    items.splice(foundIndex, 1, prefix + '<replaced>');
}
var newStr = items.join(', ');
alert(newStr);
var targetId='68'; var str='用户ID:2894,任务ID:68,其他一些文本'; var items=str.split(','); 变量前缀='任务ID:'; var foundIndex=items.indexOf(前缀+targetId); 如果(foundIndex>-1){ 项目.拼接(foundIndex,1,前缀+“”); } var newStr=items.join(','); 警报(newStr);
备选答案。不易出错。如果这个字符串是JSON,那么使用它肯定会更容易

var targetId = '68';

var str = 'User ID: 2894, Task ID: 68, Some other text';
var items = str.split(', ');
var prefix = 'Task ID: ';

var foundIndex = items.indexOf(prefix + targetId);
if(foundIndex > -1){
    items.splice(foundIndex, 1, prefix + '<replaced>');
}
var newStr = items.join(', ');
alert(newStr);
var targetId='68'; var str='用户ID:2894,任务ID:68,其他一些文本'; var items=str.split(','); 变量前缀='任务ID:'; var foundIndex=items.indexOf(前缀+targetId); 如果(foundIndex>-1){ 项目.拼接(foundIndex,1,前缀+“”); } var newStr=items.join(','); 警报(newStr);
您能指望定界符以及要替换的文本相对于定界符的位置吗?如果是这样,这里有两种方法可以替换分隔符上的文本
split
ing和
splice
ing

更简单的一个,逗号上的拆分,将第二个元素全部替换为:


只需替换
即可。我认为
replace
选项更适合您介绍的案例。

您能指望定界符以及要替换的文本相对于定界符的位置吗?如果是这样,这里有两种方法可以替换分隔符上的文本
split
ing和
splice
ing

更简单的一个,逗号上的拆分,将第二个元素全部替换为:


只需替换
即可。我认为
replace
选项更适合您介绍的案例。

现在为什么我没有想到这一点?谢谢冷却后接受。打我一拳!我正在删除我的答案。虽然这对您的示例有效,但您会遇到以下字符串问题:
“用户ID:2894,任务ID:6845,其他一些文本”
更好的方法是拆分逗号分隔的字符串,用冒号拆分所有这些字符串(假设它们都是键值对,但在您的示例中不是。)并确保值正好是“68”。我将写一个不同的答案来告诉您我的意思。现在我为什么不考虑这个问题?谢谢。在冷却后接受。击败我!我正在删除我的答案。虽然这对您的示例有效,但您会遇到以下字符串问题:
“用户ID:2894,任务ID:6845,其他一些r text“
更好的方法是拆分逗号分隔的字符串,用冒号拆分所有这些字符串(假设它们都是键值对,但在您的示例中不是),并确保值正好是“68”。我将编写一个不同的答案来说明我的意思。