Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 JS正则表达式排除引号内的匹配项_Javascript_Regex - Fatal编程技术网

Javascript JS正则表达式排除引号内的匹配项

Javascript JS正则表达式排除引号内的匹配项,javascript,regex,Javascript,Regex,此代码: var value = 'one.two[0]["three.four"]'; console.log(value.split(/(?:\.)|(?=\[")/)); 生成以下数组: 0: one 1: two[0] 2: ["three 3: four"] 如何修改它以排除引号内的点? 我希望得到以下输出: 0: one 1: two[0] 2: ["three.four"] 我认为您可以尝试以下组合: 消极落后 /?? 匹配项: 不是福而是福 消极前瞻 /福?!酒吧/火柴:

此代码:

var value = 'one.two[0]["three.four"]';
console.log(value.split(/(?:\.)|(?=\[")/));
生成以下数组:

0: one
1: two[0]
2: ["three
3: four"]
如何修改它以排除引号内的点? 我希望得到以下输出:

0: one
1: two[0]
2: ["three.four"]

我认为您可以尝试以下组合:

消极落后

/?? 匹配项:

不是福而是福

消极前瞻

/福?!酒吧/火柴:

foobar foobaz


关于

您可以在。在引号逻辑中添加排除点。我们忽略开头的引号,并向前看,看看是否在一个带引号的字符串中。我们在这里假设它不包含任何像转义引号一样的奇怪之处\


\.?!\w*\].您可能会使用,或者甚至使用\w+?:\[^\][*]?\[^.].[*].[^\].[^\][*]。没有对您投反对票,但可能是因为JavaScript缺乏对类似外观的支持?可能是因为这不是一个答案。
var value = 'one.two[0]["three.four.five"]';
console.log(value.split(/\.(?![\w.]*")|(?=\[")/));