2016-01-08 32 views
1

如何查找JavaScript对象是否具有特定正则表达式模式的键?例如,在下面的对象中,如何查找它是否包含包含单词“Address”的键?JavaScript对象具有特定正则表达式模式的键

var obj = {Address_Line1 : "XXX", Address_Line2 :"YYY", Name : "ZZZ"}; 
+1

'Object.keys(OBJ)的ToString()的indexOf( '地址')!== -1' – Tushar

+0

您有什么问题?你需要知道如何获得对象的键?你需要知道如何循环它们吗?你需要知道如何找到一个字符串是否包含在另一个字符串中? –

+0

不知道我提供的答案是他想要的,但这正是他目前所要求的。 @ Tushar的解决方案对于确切的规范更好,但是如果OP需要用正则表达式检查每个键,我的解决方案可能会更容易地覆盖。 – Scott

回答

2

当然 - 你可以用Array.prototype.someObject.keys做到这一点,就像这样:

var obj = {Address_Line1 : "XXX", Address_Line2 :"YYY", Name : "ZZZ"}; 
 

 
var hasKeyRegex = Object.keys(obj).some(function(key) { 
 
    return /Address/.test(key); 
 
}); 
 

 
console.log(hasKeyRegex);

hasKeyRegextrue如果对象具有含Address一个键,false如果不。

+1

为什么在开始的'^',因为规范是“包含”? –

+0

@torazaburo好点,更新!谢谢 :) – Scott