var str = "1-2";
var arr = ["", "a", "b"];
我想用「a」替換1,用「b」替換2,這裏是我的代碼。但它沒有用,請幫我解決。
str = str.replace('(\d)-', arr["$1"]+"-");
str = str.replace('-(\d)', "-"+arr["$1"]);
var str = "1-2";
var arr = ["", "a", "b"];
我想用「a」替換1,用「b」替換2,這裏是我的代碼。但它沒有用,請幫我解決。
str = str.replace('(\d)-', arr["$1"]+"-");
str = str.replace('-(\d)', "-"+arr["$1"]);
可以使用匿名函數:
var arr = [ /* ... */ ];
str = str.replace(/\d/, function(match) {
return arr[match];
});
注意,這將只能更換一個occurence(評論者是快是我的編輯,你可能想使用g
修飾符的正則表達式,從而重複替換,直到正則表達式不匹配)。
匿名函數的參數是完全匹配的字符串和捕獲組(如果有的話)。
var str = "1-2";
var arr = ["", "a", "b"];
str = str.replace(/(\d)-/, function (mathchedText,$1,offset,str) {
return arr[$1] + "-"
});
str = str.replace(/-(\d)/,function (mathchedText,$1,offset,str) {
return "-" + arr[$1]
});
document.write(str);
這裏的工作代碼: http://jsfiddle.net/HsQC7/
問題解決了!哇,所有的論點都很清楚。謝謝! – Will
正則表達式應該是'/ \ d/g'更換兩個號碼。 –
感謝@火箭,你比我編輯答案快... –
是的,它的工作原理!感謝幫助! XD – Will