2011-09-30 54 views
6

可能重复:
typeof for RegExp如何判断对象是否为RegExp对象?

我有一个测试,以查看是否有对象匹配给定标准的程序。

testForMatch(objectToTest, matchCriteria) { 
    // all my testing logic here. 
} 

参数matchCriteria是一个对象可能看起来像这样,例如:

{ 
    'size'  : "large", 
    'color' : /(blue|red)/ 
} 

matchCriteria在上面的示例将被用于测试是否objectToTest具有属性size与值"large",以及值为"blue""red"的属性color

因此matchCriteria具有将在objectToTest中寻找的属性/属性名称,目标是匹配属性的值。或者,如果以正则表达式给出的值(如上面的color的情况),objectToTest中的财产将是RegExp.test()'针对给定的正则表达式。

但为了正确地对待matchCriteriatestForMatch(),我需要能够告诉如果matchCriteria属性的值是一个字符串或RegExp对象。

我的问题是,我如何检测属性的值是否为RegExp对象?

+1

http://stackoverflow.com/questions/4339288/typeof-for-regexp – mithunsatheesh

+0

@mithunsatheesh,谢谢! –

回答

9

怎么样

var o = { 
    'size'  : "large", 
    'color' : /(blue|red)/ 
} 

print (o['color'] instanceof RegExp) 

>>true 
+0

啊!是。谢谢。我会接受计时器让我的时间。 –

相关问题