2015-09-14 46 views
0

如何使用JQuery實現以下內容。jQuery String用不同變量替換重複的特殊字符

string = 'This $ should be greater than $ always'

在我的情況下,上面的字符串也是一個變量

,任何替換功能與不同的變量替換$,說

replace(string, var1, var2)

+0

這個怎麼樣http://jsfiddle.net/tq9et7bo/7/ –

+0

你可能尋找內置['replace()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter)函數,它具有'replacement'函數作爲參數。 –

+0

謝謝MKA,Simon爲我工作。 –

回答

0

重新發明輪子是沒有必要在這裏我猜,但有一個jQuery插件,這裏jQuery.validator.format()

var template = jQuery.validator.format("{0} is not a valid value"); 
// later, results in 'abc is not a valid value' 
alert(template("abc")); 
0

從我的理解,我相信你想要用不同的值替換$。例如,如果Var1爲val1和VAR2是val2你的原始字符串This $ should be greater than $ always更換一次應該像This val1 should be greater than val2 always

只要在你的字符串$符號的數量總是等於值的數量進行更換,這裏是一個解。請注意,我正在使用一個數組來保存變量值。

信貸@Alnitak爲replaceAt功能(參見this SO thread

Fiddle

var string = 'This $ should be greater than $ always'; 
arr = ["val1", "val2"]; 

$.each(arr, function(k,v){ 
    string = replaceAt(string,string.indexOf('$'), v); 
}); 

$('#display').html(string); 

// replace the 'n'th character of 's' with 't' 
function replaceAt(s, n, t) { 
    return s.substring(0, n) + t + s.substring(n + 1); 
}