我有name_1,可以轻松地做一个正则表达式来制作name_2name_3

我的问题是,现在我有name_1'englishname_1'portuguese

这是我的代码:

the_string.replace(/_\d+$/, '_'+(1))


当然,这对于第一个需求非常有效,但现在我不能。
我该如何实现?

最佳答案

replace使用回调:

the_string = the_string.replace(/_(\d+)/, function(m, c0) {
    return "_" + (+c0 + 1);
});


在那里,我为匹配的数字使用捕获组,该捕获组作为第二个参数传递给函数,因此我将返回的数字转换为数字加一个(在其前面带有_)。

例:



var the_string = "name_1'en";
the_string = the_string.replace(/_(\d+)/, function(m, c0) {
  return "_" + (+c0 + 1);
});
snippet.log(the_string);

<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

关于javascript - 如何使用正则表达式在字符串中间加正1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27487219/

10-17 00:04