我試圖將包含任意數量的slug和鍵值的正則表達式路由器放在一起。在javascript對象定義中連接字符串
我這樣做是通過創建模式的對象及其各自的模塊,然後將正則表達式匹配到模塊。
但是,當我使用「+」運算符連接對象定義中的字符串時,JavaScript會引發錯誤。
// URI PATTERNS
var SLUG ='\/[a-z|A-Z|0-9|-]+)([\/]{0,1})?';
var KEYS ='\/?(\?.*)?$/';
// ROUTES
var routes = {
'\/public\/images' + KEYS : 'images', /* <-- ERROR: '+' Unexpected token */
'\/public\/other' + SLUG + KEYS : 'something-else',
};
爲什麼這個錯誤被拋出,我怎麼可以連接它們存儲在獨立的變量之外的這些價值?
對象必須具有**屬性名稱**和分配給它的值。您可以通過其屬性訪問對象中的值。這就是你所缺少的 –
屬性名稱應該是串聯的字符串,值將是模塊(圖像等) – yevg
哦,你..我忽略了它。你只需要使用'[]'來添加屬性值。就像只有一個像'routes = {}'這樣的路由普通對象,那麼你可以做'routes [your concatenation logic] ='images';' –