我试图将包含任意数量的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';' –