0

これを書くためのより良い方法があることを願っていますか?[]角括弧を削除することは私にとって問題です。

alert(CanvasData)//images[]=Base.jpg&images[]=Frame_Clear.png&images[]=Left_Clear.png&images[]=Right_Clear.png&images[]=Lenses_Lenses-Semi-Clear.png&images[]=


var PayName = CanvasData.replace("images[]=", "");
PayName = PayName.replace(/\[.*?\]/g, '');
PayName = PayName.replace(/\&images=/g, ' ');
PayName = PayName.replace(/\.png/g, " &");
PayName = PayName.replace(/\_/g, ' ');
PayName = PayName.substring(8);//remove fist 8 character (Base.jpg)
PayName = PayName.substring(0, PayName.length - 2);//remove last 2 characters // Frame Clear & Left Clear & Right Clear & Lenses Lenses-Semi-Clear &


alert(PayName)// Frame Clear & Left Clear & Right Clear & Lenses Lenses-Semi-Clear 

ありがとう

4

3 に答える 3

1

そうしないと、正規表現の特別な意味 (文字クラスを定義する) になります。

CanvasData.replace("images\[\]=", "");

ちなみに、replace セクションの 2 行目のコードでは、すでに同じことを行っています。

于 2013-08-12T06:08:19.963 に答える
1

replace を 3 つのグローバル正規表現で呼び出します。最初の呼び出しでは、何も置き換えないすべての代替を一覧表示し (つまり、すべての「=」と「Base.jpg&」を削除)、2 番目の呼び出しでは、スペースで置き換える必要がある代替を一覧表示します (' images[]'、'_'、および '.png') であり、3 つ目は未解決の問題を解決します。

 var PayName = CanvasData.replace(/=|Base\.jpg&/g,'')
                         .replace(/images\[\]|_|\.png/g, ' ')
                         .replace(/^\s*|\s*&\s*$/g, '');

 // => "Frame Clear & Left Clear & Right Clear & Lenses Lenses-Semi-Clear"
于 2013-08-12T06:13:50.103 に答える