Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换Javascript中不在方括号之间的所有字母_Javascript_Regex - Fatal编程技术网

替换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

我需要用字符串中的“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 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