JavaScript,字符串/对象操作的例外
javascript, exception for string/object manipulation
所以,我必须函数将字符串转换为对象,将对象转换为字符串,但是我需要考虑一个例外,我不确定如何。让我告诉你我有什么
parseObjectToUrl: function (obj){
var myStr = "";
var first_iteration = true;
for (var p in obj) {
if(first_iteration){
myStr += p + "=";
first_iteration = false;
}else{
myStr += "&" + p + "=";
}
tObj = obj[p];
var first_inner = true;
for(t in tObj){
if(first_inner){
myStr += t;
first_inner = false;
}else{
myStr += "," + t;
}
yObj = tObj[t];
for( y in yObj){
myStr += "/" + yObj[y];
}
}
}
return myStr;
},
parseObjectFromUrl : function(url){
var builtObj = {};
//remove first slash
url = url.slice(0, 0) + url.slice(1);
var ch = url.split('&');
var tempParent = {};
for (var p in ch) {
var tempSub = {};
var arr = ch[p].split('=');
var keyParent = arr[0];
var splitInside = arr[1].split(",");
for (var i in splitInside) {
var sub = splitInside[i].split('/');
var subKey = sub[0];
tempSub[subKey] = sub.slice(1);
}
tempParent[keyParent] = tempSub;
}
return tempParent
}
所以这些字符串看起来像
/module1=mod1/2/3/4,mod2/2/3/4&module2=mod2/3/4/5
并且对象看起来像
myObj =
{
module1 : { mod1 : [2,3,4] , mod2 [2,3,4]} ,
module2 : { mod2 : [3,4,5]}
}
所以这些功能对我来说工作正常,但是我(不幸的是)需要能够处理用户在选项中添加"/"的情况
,例如 - myObj =
{
module1 : { mod1 : [2/,3/,4/] , mod2 [2,3,4]} ,
module2 : { mod2 : [3,4,5]}
}
我敢肯定它会在我的函数中抛出一个扳手,因为我被"/"分割,所以我不确定如何解决这个问题。我会逃脱斜杠吗?如果是这样,这将如何适应这些功能?寻找有关此问题的任何建议。谢谢!
编辑:
我能够对转义的网址进行编码,例如:
obj.replace(/([/-])/g, "%2F");
到一个转义的 URL,呵呵,我无法反其道而行之。 这是我的尝试。
obj.replace(/(%2F)/g, "/");
在我看来
,最好使用 url 数组,但请记住,URL 的字符可能会受到限制:
HTTP GET 请求的最大长度?
话虽如此,人们可以做这样的事情:
module1[]=1&module1[]=2&module2[]=4&module2[]=3
这等于以下伪代码:
$_GET["module1"] = array(1,2);
$_GET["module2"] = array(4,3);
并使用 encodeURIComponent 和 decodeURIComponent 作为您的值
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
相关文章:
- javascript对象操作:根据指定条件选择属性
- 将数组对象传递到struts2中的操作类
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 响应应包含一个对象,但得到的却是GET操作的数组
- 如何将原型用于自定义方法和对象操作
- 以非ajax方式将js对象传递给mvc操作
- 排序和操作json对象,javascript
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- 在angularjs/javascript中操作对象
- 操作对象以创建不同的格式
- 为什么您可以在不引用“this”的情况下操作对象属性
- 操作对象的属性:将方法分配给属性
- Javascript/jQuery 范围和上下文问题,当试图操作对象的“引用”时
- Javascript D3.js操作对象数组
- 如何操作对象's结构转换成'点符号'-样式数组
- 用JS操作对象
- 在对象内循环数组,并根据数组值操作对象数据
- Javascript操作对象:map
- 使用鼠标在浏览器中使用three.js操作对象