gpt4 book ai didi

javascript - 从javascript中的参数化字符串中解析值

转载 作者:行者123 更新时间:2023-11-29 15:04:38 25 4
gpt4 key购买 nike

假设我有一个字符串,例如:

var map = "/directory/:id/thumbnails/:size";

我想用它来映射另一个字符串(本质上,与 Rails 用来定义路由的东西相同),例如:

var str = "/directory/10/thumbnails/large";

我想“比较”这两个字符串,并返回一个键值对或 JSON 对象,表示映射到 mapstr 部分,它在我上面的例子中,看起来像:

obj = {
'id' : '10',
'size' : 'large'
}

这是否适合 JavaScript 正则表达式?谁能帮帮我?

最佳答案

我发现写代码比解释更容易:)

var map = "/directory/:id/thumbnails/:size";
var str = "/directory/10/thumbnails/large";

var obj = {};

var mapArr = map.split('/');
var strArr = str.split('/');

if (mapArr.length != strArr.length) return false;

for (var i = 0; i < mapArr.length; i++)
{
var m = mapArr[i];
var s = strArr[i];

if (m.indexOf(":") != 0) continue;

m = m.substring(1);
obj[m] = s;
document.write(m + " = ");
document.write(obj[m]);
document.write("<br/>");
}

您还可以在此处查看实际效果 => http://jsfiddle.net/5qFkb/

如果您有任何问题,请务必询问,但代码应该是不言自明的。另请注意,没有通常的空值检查和我通常会放入的东西 - 这只是一个快速而肮脏的概念证明。

哦,万一我的回答不清楚;不,我不会使用正则表达式,因为那样我会遇到两个问题而不是一个。

关于javascript - 从javascript中的参数化字符串中解析值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com