如何判断一个对象是否是一个RegExp对象?

Jon*_*n M 6 javascript regex

可能重复:
RegExp的typeof

我有一个例程,正在测试一个对象是否符合给定的条件.

testForMatch(objectToTest, matchCriteria) {
    // all my testing logic here.
}
Run Code Online (Sandbox Code Playgroud)

该参数matchCriteria是一个可能如下所示的对象,例如:

{
    'size'     : "large",
    'color'    : /(blue|red)/
}
Run Code Online (Sandbox Code Playgroud)

matchCriteria在上面的例子将用来测试是否objectToTest有一个属性size与值"large"和属性color与任一值"blue""red".

因此matchCriteria,objectToTest为了匹配属性的值,将寻找属性/属性名称.或者,如果给出正则表达式作为值(color如上所述),则属性objectToTestRegExp.test()与给定的正则表达式相对应.

但是为了matchCriteria正确处理testForMatch(),我需要能够判断属性的值matchCriteria是字符串还是RegExp对象.

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

Ale*_* K. 10

怎么样

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

console.log( o['color'] instanceof RegExp )

>>true
Run Code Online (Sandbox Code Playgroud)