2016-11-21 28 views
-1

有本地存儲的按鍵陣列,看起來像這樣如何建立一個正則表達式瓦特/新的RegExp()

[ 
    '$gl-user', 
    '$gl-date-preference::22' 
    '$gl-date-preference::28' 
    '$gl-mg-filters::22::1' 
    '$gl-mg-filters::22::8' 
] 
  • 首先::_number_代表storeId
  • ::_number_可以 表示任何附加標識符。

試圖建立一個函數,它接受一個storeId並返回匹配storeId所有的鍵。所以,如果22在該函數傳遞它將返回

[ 
    '$gl-date-preference::22', 
    '$gl-mg-filters::22::1', 
    '$gl-mg-filters::22::8' 
] 

這是我第一次嘗試。複製到控制檯每次都會返回空,但我不明白爲什麼。

var regex = new RegExp('^[$\w\d\-]+\:\:' + '22'); 
'$gl-mg-filters::22'.match(regex); 

任何幫助獲得這個正則表達式的工作,或想法更好的解決方案將不勝感激。謝謝!

回答

0

你的正則表達式不匹配,因爲你只是用字符串內的斜槓逃跑。相反,你應該兩次逃脫它,例如:

var regex = new RegExp('^[$\\w\\d\\-]+\\:\\:' + '22'); 
'$gl-mg-filters::22'.match(regex); 

您最初的嘗試會嘗試編譯^[$wd-]+::22成正則表達式。

相關問題