gpt4 book ai didi

javascript - typescript /Javascript : Replace All String Occurrences with Random Number

转载 作者:搜寻专家 更新时间:2023-10-30 21:03:39 24 4
gpt4 key购买 nike

我有以下函数,用随机数替换出现的字符串。我目前用相同的随机数替换字符串。我需要一个函数来替换每个实例一个唯一的数字。这是我的。

尝试澄清:

我想找到所有出现的 '},{ 并将其替换为 },"random":{ 其中 random 是一个每次出现的唯一整数。

result = this.replaceAll(result, '},{', `},"${this.getRandomInt(1, 2000)}":{`);

private getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

private replaceAll(str, find, replace) {
return str.replace(new RegExp(this.escapeRegExp(find), 'g'), replace);
}

private escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}

目前的结果是

},"1340":{"expense_category_id":"63","amount":3},"1340":{"expense_category_id":"62","amount":3}}}}

1340不应该重复

编辑:replace all 前结果的值为:

},{"expense_category_id":"63","amount":3},{"expense_category_id":"62","amount":3}}}}

最佳答案

像这样将函数传递给 replace() 第二个参数:

function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

function replaceAll(str, find, replace) {
return str.replace(new RegExp(this.escapeRegExp(find), 'g'), replace);
}

function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}

var input = '},{"expense_category_id":"63","amount":3},{"expense_category_id":"62","amount":3}}}}',
result = replaceAll(input, '},{', (x => '},"' + getRandomInt(1, 2000) + '":{'));

console.log(result);

我不确定为什么,但它似乎将第一次迭代生成的相同字符串用于后续迭代。使用函数,您可以强制它每次都运行。

关于javascript - typescript /Javascript : Replace All String Occurrences with Random Number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43504533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com