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

时间:2011-09-30 15:18:34

标签: javascript regex

  

可能重复:
  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对象?

1 个答案:

答案 0 :(得分:10)

怎么样

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

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

>>true