替换Javascript中不在方括号之间的所有字母
我需要用字符串中的“a”替换所有字母,该字符串不在javascript中的方括号之间替换Javascript中不在方括号之间的所有字母,javascript,regex,Javascript,Regex,我需要用字符串中的“a”替换所有字母,该字符串不在javascript中的方括号之间 let value = "foo[bar9]12a"; // should be replaced by "aaa[bar9]12a" let value = "[foo]bar5[foo]"; // should be replaced by "[foo]aaa5[foo]" 我尝试使用regex,但效果不如预期: const value = "foo[bar9]12a"; const alphaRe
let value = "foo[bar9]12a";
// should be replaced by "aaa[bar9]12a"
let value = "[foo]bar5[foo]";
// should be replaced by "[foo]aaa5[foo]"
我尝试使用regex,但效果不如预期:
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”;
常数rx=/(\[[^\][]*])|[a-z]/gi;
const result=value.replace(rx,函数($0,$1){返回$1 | |'a'});
控制台日志(结果)代码>您可以使用
const value=“foo[bar9]12a”;
常数rx=/(\[[^\][]*])|[a-z]/gi;
const result=value.replace(rx,函数($0,$1){返回$1 | |'a'});
控制台日志(结果)代码>一个选项是匹配一个非括号字符,然后查找非括号字符,最后后跟一个[
或字符串结尾:
const value=“foo[bar9]12a”;
console.log(
value.replace(/[^[\]](?=[^[\]]*(?:\[\]$)/g,'a')
);
一个选项是匹配一个非括号字符,然后查找非括号字符,最后后跟一个[
或字符串的结尾:
const value=“foo[bar9]12a”;
console.log(
value.replace(/[^[\]](?=[^[\]]*(?:\[\]$)/g,'a')
);
第一个示例不应替换为:“aaa[bar9]aaa”
而不是“aaa[bar9]12a”
?@DasSaffe仅替换字母,而不是数字第一个示例不应替换为:“aaa[bar9]aaa”
而不是“aaa[bar9]12a”
?@DasSaffe仅替换字母,而不是数字=[^[\]*(?:\[\]$)/g,'a')
,foobar9]12a
变为foobar9]aaa
替换(/[^[\]*(?=[^[\]*(?:\[\]$)/g,'a')
,foobar9]12a
变为foobar9]aaa