有字符串如:"Name=1231||||Sex=男"
试图转化为对象实现如下的数据访问:
var obj=new Instance("Name=1231||||Sex=男");
alert(obj.Name);
alert(obj.Sex);
现在代码如下,但是存在很多问题,请问如何实现这个功能,谢谢。
function Instance(str)
{
var obj=new Object();
var arry=str.split("||||");
for(var o in arry)
{
var cha =o.split("=");
obj.eval(cha[0])=cha[1];
}
}
return obj;
}
试图转化为对象实现如下的数据访问:
var obj=new Instance("Name=1231||||Sex=男");
alert(obj.Name);
alert(obj.Sex);
现在代码如下,但是存在很多问题,请问如何实现这个功能,谢谢。
function Instance(str)
{
var obj=new Object();
var arry=str.split("||||");
for(var o in arry)
{
var cha =o.split("=");
obj.eval(cha[0])=cha[1];
}
}
return obj;
}
var obj=new Instance("Name=1231||||Sex=男");
alert("Name====>"+obj.Name);
alert("Sex=====>"+obj.Sex);function Instance(str){
var arry=str.split("||||");
for(var i=0;i<arry.length;i++){
var cha =arry[i].split("=");
eval("this."+cha[0]+"='"+cha[1]+"'");
}
}
</script>
var a = arguments;
for(var i=0,l=a.length;i<l;i++)
document.write(a[i]);
}
var str = "Name=1231||||Sex=男";String.prototype.toObject = function(){
var ar = this.split(/\|/);
var o = {};
for(var i=0,l=ar.length;i<l;i++){
var a = ar[i].split("=");
o[a[0]] = a[1];
}
return o;
}var obj = str.toObject();
for(var p in obj)
wr(p,":",obj[p],"<br>");
var Instance = function (s) {
s = s.replace(/([\$\w]+)=(.*?)(?:\|\|\|\||$)/g, "this.$1='$2',");
s = s.slice(0, s.length - 1);
eval("(function () {" + s + "}).call(this)");
};
var obj = new Instance("Name=1231||||Sex=男");
alert(obj.Name);
alert(obj.Sex);
</script>
String.prototype.getQueryString = function(name)
{
var reg = new RegExp("(^|&|\\?)"+name+"=([^&]*)(&|$)"), r;
if (r=this.match(reg)) return unescape(r[2]); return null;
};
var obj="Name=1231||||Sex=男".replace(/\|/g,"&");
alert("Name====>"+obj.getQueryString("Name"));
alert("Sex=====>"+obj.getQueryString("Sex"));
</script>
//eval("this."+cha[0]+"='"+cha[1]+"'");
this[cha[0]] = cha[1];
[
{ }
]
}eval() 即可!