1

这是场景:
我有 6 个具有一些特殊字符的字符串变量。
我将这 6 个字符串分配给这样的数组:

arr=[str1,str2,str3.....);
arr=escape(arr);

因为某些字符串变量具有特殊字符。
之后,我将它发送arr到其他函数,然后在其他函数中接收它,如下所示:
varnewarr=unescape(arr);
现在我想从这个新的 arr中获取所有六个变量,我该怎么做?
目前我正在使用拆分功能,如:.split(',');

但问题是,在我,内部的一些变量中,它被拆分了两次,我不希望这样。

我有三个变量

img='/cardfinderservice/services/imageservice/?cardVersionId=16682&amp';

desc= '5% Cash Back on up to $1,500 spent at grocery stores and movie theatres from 4/1/12-6/30/12<br /&gt';

details='Unlimited 1% Cash Back on all other purchases<br />Up to an additional 10% Cash Back when you shop online at select merchants through Chase<br />No annual fee and rewards never expire</p&gt';

Var arr=[img,desc,details];   
arr=escape(arr);   
loadabc(arr);   
function loadabc(arr){    
    var newarr=unescape(arr);   
    newarr=newarr.split(',');   
}
4

2 回答 2

0

jsFiddle 演示

var arr=[img,desc,details].join('|||');  // join with something special :)
arr=escape(arr);   
loadabc(arr);

function loadabc(arr){    
    var newarr=unescape(arr);   
    newarr=newarr.split('|||'); // instead of comma split by |||
    alert(newarr[1]);           // test tricky one holding a comma
}  
于 2012-09-12T05:42:29.807 回答
0

让我们停止尝试用非常规战术解决他的问题。显然,不需要转义数组,将其传递给函数,然后取消转义。这是不好的。

如果您不在字符串中使用单引号,则无需转义

http://jsfiddle.net/n6haN/

控制台日志对我来说看起来不错!

于 2012-09-12T05:53:09.317 回答