如何判断一个对象是否为正则表达式对象?

7

可能重复:
RegExp的typeof

我有一个例程,用于测试对象是否满足给定的条件。

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() 匹配。
但是,为了正确处理 testForMatch() 中的 matchCriteria,我需要能够判断属性值是字符串还是 RegExp 对象。
我的问题是,如何检测属性值是否为 RegExp 对象?

1
https://dev59.com/HW855IYBdhLWcg3wcz5h - Mithun Satheesh
1个回答

10

如何呢?

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

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

>>true

啊!好的。谢谢。计时器结束后我会接受的。 - Jonathan M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接