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.]*")|(?=\[")/));