gpt4 book ai didi

javascript - 替换 Javascript 中不在方括号之间的所有字母

转载 作者:行者123 更新时间:2023-11-30 08:18:48 25 4
gpt4 key购买 nike

我需要用 javascript 中不在方括号之间的字符串中的“a”替换所有字母。

let value = "foo[bar9]12a"; 
// should be replaced by "aaa[bar9]12a"

let value = "[foo]bar5[foo]";
// should be replaced by "[foo]aaa5[foo]"

我尝试使用正则表达式,但它没有像预期的那样工作:

const value = "foo[bar9]12a";
const alphaRegex = /(?:[\d*]|\[.*\])|(([a-zA-Z]))/gmi;
const result = value.replace(alphaRegex, 'a');

// result = "aaaaaa";

有什么建议吗?

最佳答案

你可以使用

const value = "foo[bar9]12a";
const rx = /(\[[^\][]*])|[a-z]/gi;
const result = value.replace(rx, function($0, $1) { return $1 || 'a'; });
console.log(result);

/(\[[^\][]*])|[a-z]/gi 正则表达式匹配所有出现的地方(以不区分大小写的方式)

  • (\[[^\][]*]) - 捕获第 1 组:[,除 [] 然后是 ]
  • | - 或者
  • [a-z] - ASCII 字母。

如果第 1 组匹配,则返回值是捕获的子字符串,否则,a

关于javascript - 替换 Javascript 中不在方括号之间的所有字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57356227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com