我正在尝试组合一个包含任意数量的 slugs 和键值的正则表达式路由器。
我通过创建模式对象及其各自的模块来完成此操作,然后将正则表达式与模块进行匹配。
但是当我使用“+”运算符连接对象定义内部的字符串时,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',
};
为什么会抛出此错误?除了将这些值存储在单独的变量中之外,如何连接这些值?
最佳答案
// URI PATTERNS
var SLUG = '\/[a-z|A-Z|0-9|-]+)([\/]{0,1})?';
var KEYS = '\/?(\?.*)?$/';
// ROUTES
var routes = {};
function addRoute(keyParts, value){
routes[keyParts.join('')] = value;
}
addRoute(['\/public\/images', KEYS], 'images');
addRoute(['\/public\/other', SLUG, KEYS], 'something-else');
console.log(routes);
关于javascript - 在 javascript 对象定义中连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645736/