可能重复:
typeof for RegExp
我有一个例程正在测试一个对象是否符合给定的标准。
testForMatch(objectToTest, matchCriteria) {
// all my testing logic here.
}
参数matchCriteria
是一个可能如下所示的对象,例如:
{
'size' : "large",
'color' : /(blue|red)/
}
以上示例中的此matchCriteria
将用于测试objectToTest
是否具有值为size
的属性"large"
,以及具有值的属性color
"blue"
或"red"
。
因此,matchCriteria
具有将在objectToTest
中搜索的属性/属性名称,目的是匹配属性的值。或者,如果给出正则表达式作为值(如上面color
的情况),objectToTest
中的属性将针对给定的正则表达式RegExp.test()
进行编辑。
但为了在matchCriteria
中正确处理testForMatch()
,我需要能够判断matchCriteria
中属性的值是字符串还是RegExp
对象。
我的问题是,如何检测属性的值是否为RegExp
对象?
答案 0 :(得分:10)
怎么样
var o = {
'size' : "large",
'color': /(blue|red)/
}
console.log( o['color'] instanceof RegExp )
>>true