1

シナリオは次のとおり
です。いくつかの特別な文字を持つ6つの文字列変数があります。
これらの6つの文字列を次のような配列に割り当てました。

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

一部の文字列変数には特別な文字があるためです。
その後、これarrを他の関数に送信し、次のような他の関数でこれを受け取ります
。varここで、この新しいarrnewarr=unescape(arr);
から6つの変数すべてを取得したいのですが、どうすればよいですか? 現在、私は次のような分割関数を使用しています:
.split(',');

しかし、問題は、私が内部に持っているいくつかの変数,で、それが2回分割されているので、それを望まないということです。

私は3つの変数を持っています

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

型破りな戦​​術で彼の問題を解決しようとするのをやめましょう。明らかに、配列をエスケープして関数に渡し、エスケープを解除する必要はありません。これは悪いです。

文字列で一重引用符を使用しない場合は、エスケープする必要はありません

http://jsfiddle.net/n6haN/

コンソールログは私には問題ないように見えます!

于 2012-09-12T05:53:09.317 に答える
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 に答える