在javascript对象定义中连接字符串
Concatenating string inside javascript object definition
我试图把一个正则表达式路由器,包括一个任意数量的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);
这个解决方案怎么样?希望能有所帮助!
var SLUG =''/[a-z|A-Z|0-9|-]+)(['/]{0,1})?';
var KEYS =''/?('?.*)?$/';
function obj(){
obj=new Object();
this.add=function(key,value){
obj[key]=value;
}
this.obj=obj
}
routes=new obj();
routes.add([''/public'/images'+ KEYS], 'images');
routes.add([''/public'/other' + SLUG + KEYS],'something-else');
console.log(routes.obj);
使用计算的属性名:
var routes = {
[`'/public'/images${KEYS}`]: 'images',
上面也使用了ES6模板字面值
相关文章:
- 对级联下拉列表使用不同的连接字符串
- 连接字符串时如何留出空格
- 用javascript中的三元运算符连接字符串
- 如何在JavaScript中移除在循环中连接字符串时添加的额外字符
- 在 JavaScript 中连接字符串或数组是否更快
- 我的 base64 连接字符串有 = 字符.如何摆脱它们
- 当字符串为空时,以不同的方式连接字符串
- 这将如何在JavaScript中完成.在连接字符串中使用变量
- 使用JavaScript连接字符串有什么问题
- 使用 JavaScript 警报框在 php 中连接字符串
- 对最后一个条目进行特殊处理的连接字符串的最简单方法
- 连接字符串以打开带有 控件的窗口弹出窗口
- 在 JavaScript / jQuery 中连接字符串
- 连接字符串时是否有用于间距的 JSHint 设置
- 在 Javascript 中连接字符串
- 在 HTML 中连接字符串
- 在名称属性 Struts 中连接字符串
- jQuery 函数在连接字符串后返回 [对象对象]
- 用于屏蔽连接字符串密码的正则表达式
- NodeJS MongoDB 连接字符串问题