javascript - 多次插入到一个大字符串中

标签 javascript string performance memory insert

我有一个 200 000 个符号宽的字符串。我需要更换\index{term1}\index0001{term1} , \index{term2}\index0002{term2}因此,对于每个术语,我都有一个索引号,我需要将其插入到 \index 之后。 。如果特定术语满足多个,则其索引号仍然相同。

此类替换的数量是事先已知的。我还知道每个替换的确切位置。

怎样才能快速完成?

我是 JS 的新手,在 С++ 中,我会为新字符串分配足够大的缓冲区,并在替换之间复制部分,并在中间插入替换。

最佳答案

您可以分隔数字并填充它,然后将其与匹配的字符串一起返回。

var string = '\index{term1}\index{term2}\index{term95}',
    result = string.replace(/\{term(\d+)\}/g, function (match, n) {
        n = n.toString();
        while (n.length < 4) {
            n = '0' + n;
        }
        return n + match;
    });

console.log(result);

关于javascript - 多次插入到一个大字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919117/

相关文章:

javascript - 无法将 angular2 动画设置为 FadeIn

php - 将字符串分解为二维数组

javascript - 分割键 : value; pairs and exclude whitespace in matches

python - 交换字符串中的两个字符并将生成的字符串存储在 Python 列表中

java - 使用java2D在圆中找到点的快速方法

javascript - echo 或 print_r 数组到 div 的占位符中

javascript - WordPress 插件不适用于自己的主题

javascript - dynatree - 如何滚动到事件节点?

c - 在 x86 和 x64 上的同一页面内读取缓冲区的末尾是否安全?

android - 从 Eclipse IDE 导出 Lint 报告