如何使用正则表达式替换字符串的给定索引

时间:2018-06-12 19:58:24

标签: regex

我想替换字符串的某些索引,例如:

" 123456789"我希望第二和第八指数互相替换。

结果将是" 129456783"。我怎样才能做到这一点?

编辑:

感谢回答,我找到了我的解决方案,我在这里写它是为了万一有人需要它。

var str = "123456789";
var res = str.replace(/(\d{2})(\d{1})(\d{5})(\d{1})/g, "$1$4$3$2");

这应该可以解决问题!

1 个答案:

答案 0 :(得分:4)

使用捕获组和反向引用。

正则表达式:

(..)(.)(.....)(.)

替换模式:

$1$4$3$2

请注意,确切的语法取决于正则表达式风格(即使用的工具)。 有些工具通过反斜杠定义反向引用,即\1\4\3\2,有些工具不支持反向引用。