gpt4 book ai didi

JavaScript 正则表达式 : capture property name after array index

转载 作者:行者123 更新时间:2023-12-04 09:39:05 25 4
gpt4 key购买 nike

在Javascript中,有一个字符串表示一个包含数组的对象属性路径,用正则表达式在数组索引后捕获属性名称的最佳方法是什么?

有这个:

'someArray[0].property.otherIgnorableProperties'

我只想捕获“属性”部分,忽略“someArray[0]”部分以及“属性”之后的所有内容(包括点)。 “属性”部分可以具有有限数量的可能的任意名称。

到目前为止,我已经尝试过这个:
'someArray[0].property'.match(/^someArray\[\d\]\.property|someOtherPropertyName|otherName/g);

谢谢!

编辑:

在cars10m回答之后我想出了这个:
'someArray[0].field3.other'.match(/(?!someArray[\d+]\.)field1|field2|field3.*/g) 

但这失败了,因为对于 field3,它返回“field3.other”。对于 field1 和 field2 工作正常。只是为了澄清,我需要它返回匹配的段:field1、field2 或 field3。

最佳答案

这样做:

let strings=['someArray[0].wantedprop1.otherIgnorableProperties',
'dada[123].unwantedprop1.second.third',
'X[91234].wantedprop2',
'sameArray[94].wantedprop2.again',
'sameArray[94].wantedprop2notwanted',
'doNotTakeThis.wantedprop2.itIsNotAnArrayElement'
];
strings.forEach(str=>{
let m=str.match(/.+\[\d+\]\.(wantedprop1|wantedprop2|anyotherwantedprop)(?!\w)/);
let result=m&&m[1];
console.log(result);
})


它返回第一个捕获组作为字符串的“唯一幸存内容”,但前提是整个模式匹配。

尚未检查数组的名称,但您可以使用以下 RegExp 来执行此操作:
/someArray\[\d+\]\.(wantedprop1|wantedprop2)(?!\w)/

关于JavaScript 正则表达式 : capture property name after array index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62410431/

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