【发布时间】:2017-09-03 14:54:57
【问题描述】:
我正在尝试通过将搜索字段中的用户输入分解为对象来在客户端构建 api 查询。
例如, 搜索查询
arg1:"2 words" business corporate arg2:val2
期望值
{
arg1: "2 words",
arg2: "val2",
extra: "business corporate"
}
我试过这样做。
var query = initquery.split(' ');
var obj = {};
for(var i=0; i<query.length; i++){
var s = query[i].split(':');
if(s.length == 2) {
initquery = initquery.replace(query[i], '');
obj[s[0]] = s[1];
}
}
obj.extra = initquery;
这不处理引号中的字符串。
【问题讨论】:
-
字符串里面会不会只有arg1和arg2?或者其他 arg{i}:val{i} 也是可能的?
-
是的,其他参数也是可能的。
-
Stack Overflow 要求您自己完成工作。发布问题是不够的。编写代码并提出相关问题。
-
这不是重点。关键是你没有工作。你来这里是为了获取复制粘贴代码。你来这里是为了水蛭,不是为了学习。
-
您需要使用
.*?使其不贪婪。并且未引用的情况应使用\w*,因此它会在到达单词末尾时停止。
标签: javascript regex