2012-03-31 24 views
1

我有一個與.gif,.png等在其中的數組。我想分別用@ 2.gif,@ 2.png等替換。Javascript替換陣列中的所有數組

.gif -> @2.gif 
.png -> @2.png 

我想這樣做與string.replace,但我不能特定一個與替換陣列。

任何幫助?

回答

1

可以替換使用正則表達式:

str = str.replace(/\.(gif|png)/gi, '@2.$1'); 

Here's a demo.此外,根據您要更換什麼,你可能不需要g標誌(指定該模式的所有實例應及時更換,而不是簡單地找到的第一個。)

+0

你需要一些數組喬一般來說要做這項工作。 – 2012-03-31 20:22:30

+0

@NiklasB:怎麼這樣? (請參閱演示。) – Ryan 2012-03-31 20:22:55

+0

擴展存儲在一個數組中,因此您應該在其上映射一個正則表達式轉義函數並使用'|'進行連接。 – 2012-03-31 20:23:49

-1

只需使用+

像如

var ='@ 2'+ var

如果您想要將所有元素應用於此循環。

0
for (int i=0;i<MyArray.length;i++) 
{ 
    MyArray[i]="@2"+MyArray[i]; 
} 
0
var arr = [ 
'.gif', 
'.png' 
]; 

for (var i = 0; i < arr.length; i++) { 
arr[i] = '@2' + arr[i]; 
alert(arr[i]); 
} 

// @2.gif and @2.png are printed out 
0

爲什麼字符串替換?只需迭代數組並映射值即可。

arrayOfImages = arrayOfImages.map(function(val, i) { 
    return '@' + i + val; 
}); 

http://jsfiddle.net/hWqEe/

0

瘋狂的另類:

var arr = ["gif", "png", "jpg"]; 

arr = ("@2" + arr.join("*@2.")).split("*"); 

注:只要確保你使用在陣列中的任何項目內部的任何*字符,如果你想用它,只是使用另一個不可能的字符