2011-07-08 37 views

回答

3
var regex = "/\\d(?=(?:\\d{3})+(?!\\d))/g, '$&,'"; 

這是一個字符串。它不是一個正則表達式對象和替換字符串。當它傳遞到replace時,它是一個參數,而不是兩個。您需要單獨通過這兩個參數:

var regex = /\d(?=(?:\d{3})+(?!\d))/g; 
var replace = '$&,'; 
var num = 1234567890; 

alert(String(num).replace(/\d(?=(?:\d{3})+(?!\d))/g, '$&,')); 
alert(String(num).replace(regex, replace)); 
alert(regex); 

http://jsfiddle.net/nmWuw/3/


請注意,您可以在一個呼叫定義它們,如果你真的想,使用數組和apply

var regex = [/\d(?=(?:\d{3})+(?!\d))/g, '$&,']; 
alert(String.prototype.replace.apply(num, regex)); 

http://jsfiddle.net/nmWuw/6/

然而,這並不是一個好主意 - 它的很多難以閱讀,而且更不直觀。

+0

哦,geez ...我甚至沒有看到那個錯誤。 Brainfart就我而言。謝謝。 – ngen

相關問題