Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用方括号替换js_Javascript - Fatal编程技术网

Javascript 用方括号替换js

Javascript 用方括号替换js,javascript,Javascript,我希望有更好的方法写这个?删除[]方括号对我来说是个问题 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

我希望有更好的方法写这个?删除[]方括号对我来说是个问题

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 

谢谢

请尝试转义括号,否则它们对正则表达式具有特殊意义(定义字符类)

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

顺便说一句,在替换部分的第二行代码中,您已经在做同样的事情了。

使用三个全局正则表达式调用替换,其中第一个调用列出了应该用零替换的每个替换项(即删除所有“=”和“Base.jpg&”),第二个调用列出了应该用空格替换的替换项('images[]'、''.'和'.png'),第三种方法可以解决您的问题:

 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"

如果方括号
[]
始终为空,则可以执行以下操作:

var Payname=CanvasData.split([]).join(“”;

显然,这不适用于一般情况


这样做的目的是将
[]
视为一个数据分隔符,并将字符串转换为一个已解析的数组——就像解析“1,3,6,4.5,3”一样,只是逗号是
[]
。然后,通过拆分字符串形成的数组被连接回一个字符串,并带有一个空白分隔符。所有
[]
都消失了。但是那些
[已占用]
不要。

您应该使用
console.log()
而不是
alert()为了调试目的,在浏览器的JavaScript控制台中检查输出。你到底想做什么?让所有的方括号消失吗?请把它弄清楚。告诉我们代码之外的内容。我们不能仅仅通过代码来判断你想做什么。考虑代码可能包含H的可能性。uge bug和正在做你不想做的事情:你更愿意被告知如何实现你的目标(并且你的代码中有一个bug),还是一个更好的方法来执行这个非常不受欢迎的行为?这听起来像。如果你告诉你到底想要什么,你会得到更好的答案