2011-09-30 100 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

啊!是。謝謝。我會接受計時器讓我的時間。 –

相關問題