我想替换字符串的某些索引,例如:
" 123456789"我希望第二和第八指数互相替换。
结果将是" 129456783"。我怎样才能做到这一点?
编辑:
感谢回答,我找到了我的解决方案,我在这里写它是为了万一有人需要它。
var str = "123456789";
var res = str.replace(/(\d{2})(\d{1})(\d{5})(\d{1})/g, "$1$4$3$2");
这应该可以解决问题!
答案 0 :(得分:4)
使用捕获组和反向引用。
正则表达式:
(..)(.)(.....)(.)
替换模式:
$1$4$3$2
请注意,确切的语法取决于正则表达式风格(即使用的工具)。
有些工具通过反斜杠定义反向引用,即\1\4\3\2
,有些工具不支持反向引用。