2011-09-30 13 views
6

Eventuali duplicati:
typeof for RegExpCome stabilire se un oggetto è un oggetto RegExp?

Ho una routine che sta testando per vedere se un oggetto partite date criteri.

testForMatch(objectToTest, matchCriteria) { 
    // all my testing logic here. 
} 

Il parametro matchCriteria è un oggetto che potrebbe apparire così, per esempio:

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

Questo matchCriteria nell'esempio di cui sopra saranno utilizzati per verificare se objectToTest ha un attributo size con valore "large", e un attributo color con valore "blue" o "red".

Quindi matchCriteria ha nomi di proprietà/attributo che verranno ricercati in objectToTest con l'obiettivo di far corrispondere i valori delle proprietà. Oppure, se viene assegnata un'espressione regolare come valore (come nel caso di color sopra) la proprietà in objectToTest sarà RegExp.test() 'ed è correlata alla regex specificata.

Ma al fine di trattare il matchCriteria correttamente testForMatch(), ho bisogno di essere in grado di dire se il valore di un attributo in matchCriteria è una stringa o un oggetto RegExp.

La mia domanda è, come posso rilevare se il valore di un attributo è un oggetto RegExp?

+1

http://stackoverflow.com/questions/4339288/typeof-for-regexp – mithunsatheesh

+0

@mithunsatheesh, Grazie! –

risposta

9

come su

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

print (o['color'] instanceof RegExp) 

>>true 
+0

Ah! Sì. Grazie. Accetterò quando il timer me lo consente. –

Problemi correlati