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

sam*_*ris 0 javascript replace substring

我有一个具有以下格式的字符串:

'User ID: 2894, Task ID: 68, Some other text'
Run Code Online (Sandbox Code Playgroud)

假设我需要将此字符串转换为以下内容:

'User ID: 2684, Task ID: <replaced>, Some other text'
Run Code Online (Sandbox Code Playgroud)

显然,执行此操作的方法是将 string 替换68为 string <replaced>

'User ID: 2894, Task ID: 68, Some other text'
Run Code Online (Sandbox Code Playgroud)

User ID但如果包含相同的数字序列,这可能会在我脸上爆炸。

'User ID: 2684, Task ID: <replaced>, Some other text'
Run Code Online (Sandbox Code Playgroud)

但是,我还有有关应替换的子字符串的字符索引的信息。所以我有以下代码来完成此任务:

var str = 'User ID: 2894, Task ID: 68, Some other text';
var newStr = str.replace('68', '<replaced>');
alert(newStr);
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,现在我需要调用substring两次才能得到结果。但是是否有更简单的代码可以用来替换给定偏移量之后出现的子字符串?

Han*_*pio 6

将您的前缀添加到替换函数中。

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);
Run Code Online (Sandbox Code Playgroud)

// 编辑* 在这里也添加一个逗号后缀,以防存在其他以 68 开头的任务 ID 号。显然,这个答案假设您要替换的并不总是 68,并且任何数字都将传递到此中功能。