我有name_1
,可以轻松地做一个正则表达式来制作name_2
,name_3
。
我的问题是,现在我有name_1'english
,name_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/