javascript - 如何仅在字符串中的特定位置替换匹配项?

标签 javascript regex

所以,我有一个函数,它有两个参数:字符串和要替换的匹配索引,我只需要替换与该索引匹配的。我该怎么做?

示例:

replace('a_a_a_a_a', 1)

结果:

a__a_a_a

最佳答案

可能看起来像:

var mystr = 'a_a_a_a_a';

function replaceIndex(string, at, repl) {
   return string.replace(/\S/g, function(match, i) {
        if( i === at ) return repl;

        return match;
    });
}

replaceIndex(mystr, 2, '_');

上面的代码利用了这样一个事实,即 .replace() 可以将 funarg(函数参数)作为第二个参数。该回调在匹配的正则表达式模式的当前匹配和该匹配的 index 中传递(以及我们在这里不感兴趣的其他一些)。现在,这就是我们实现您想要的结果所需的全部信息。我们写了一个小函数希望接受三个参数:

  • 要修改的字符串
  • 我们希望改变的索引
  • 该位置的替换字符

关于javascript - 如何仅在字符串中的特定位置替换匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843441/

相关文章:

javascript - 如何使用带有 gulp-replace 的捕获组?

javascript - 使用 JS .match() 从字符串中提取数字,然后使用结果来测试相等性

python - 带有 Pandas 的 REGEX 过滤器(任何数字组合后跟 'plus' 符号)

javascript - Chart.js : Is there a way to name each bubble in chart?

具有特殊字符和空格的 Javascript 正则表达式

javascript - Plone 还是 Drupal 更适合大量的 JavaScript 集成?

javascript - 查找二次贝塞尔曲线与点或矩形之间的最短距离

regex - 为什么 POSIX "printable characters"类不匹配简单字符串?

javascript - 为什么 Route 类中的 Ember.js API 方法 TransitionTo 是私有(private)的?

javascript - 无法通过 ajax 调用加载 php 页面