2015-09-14 47 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); 
}