2011-09-30 57 views
6

thể trùng lặp:
typeof for RegExpLàm thế nào để biết một đối tượng là một đối tượng RegExp?

Tôi có một thói quen mà đang thử nghiệm để xem nếu một đối tượng trận đấu cho các tiêu chí.

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

Tham số matchCriteria là một đối tượng có thể trông như thế này, ví dụ:

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

này matchCriteria trong ví dụ trên sẽ được sử dụng để kiểm tra nếu objectToTest có một thuộc tính size với giá trị "large", và thuộc tính color với giá trị là "blue" hoặc "red".

Vì vậy, matchCriteria có tên thuộc tính/thuộc tính sẽ được tìm kiếm trong objectToTest với mục tiêu khớp với các giá trị của thuộc tính. Hoặc, nếu một regex được đưa ra làm giá trị (như trong trường hợp của color ở trên) thì thuộc tính trong objectToTest sẽ là RegExp.test() 'ed so với regex đã cho.

Nhưng để xử lý matchCriteria đúng cách trong testForMatch(), tôi cần phải biết giá trị của thuộc tính trong matchCriteria là một chuỗi hoặc đối tượng RegExp.

Câu hỏi của tôi là, làm thế nào tôi có thể phát hiện xem giá trị của thuộc tính có phải là đối tượng RegExp không?

+1

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

+0

@mithunsatheesh, Cảm ơn bạn! –

Trả lời

9

thế nào về

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

print (o['color'] instanceof RegExp) 

>>true 
+0

Ah! Vâng. Cảm ơn. Tôi sẽ chấp nhận khi bộ đếm thời gian cho phép tôi. –

Các vấn đề liên quan