2014-09-22 97 views
0

我在對象文字中有一些正則表達式模式,我想在switch之後查找某些模式,如安全性數字。switch語句中的RegExp構造函數

爲什麼我會在abc以下獲得匹配?

我的代碼版本簡化:

var cst = { 
    SECURITYNUMBER: /^\d{12}$/ 
}; 

function doStuff(query){ 

    $.each(query.split(' '), function(i, word){ 

     switch(true){ 
      case new RegExp(cst.SECIRUTYNUMBER).test(word): 
       console.log('match'); 
       break; 
     } 

    }); 
} 

doStuff('198610054937 abc'); 

http://jsfiddle.net/t1ps0vdh/

回答

1

你已經有了一個錯字...而不是使用SECURITYNUMBER,你使用SECIRUTYNUMBER

更改...

case new RegExp(cst.SECIRUTYNUMBER).test(word): 

要...

case new RegExp(cst.SECURITYNUMBER).test(word): 

http://jsfiddle.net/t1ps0vdh/1/

+0

*捂臉*感謝 – Johan 2014-09-22 10:32:28

+1

我知道那種感覺@Johan,只是需要一個第二一雙眼睛 – freefaller 2014-09-22 10:45:28