【发布时间】:2014-06-20 09:43:11
【问题描述】:
替换变量 var2 中的 {t},从 var1 中删除一个“$”符号,并将其呈现为 abc$abc 而不是最终结果中的 abc$$abc。
var var1 = 'abc$$abc';
var var2 = 'You are comparing {t} entity';
$('#div1').append('<div id="div2">' + var2.replace('{t}','<a href="' + var1 + '" target="_self">' + '</a>') + '</div>');
我能找到的最接近的问题是Javascript append element with special characters,但即使这样也无法解决问题。
毫无疑问,我可以检查结果字符串是否只包含两个 $s 中的一个 $,但我想知道上面的 append 是否有任何问题,以及是否有任何通用方法可以使用使用两个 $ 符号恢复结果字符串。
【问题讨论】:
-
这和
$.append()无关,可以简单的用console.log("a".replace("a", "$$"));来演示 -
你是对的,但我不明白为什么两个 $s 被减少到只有一个。另外,如果包含 $$ 的字符串是动态的,在这种情况下,编写一个单独的函数来执行另一个替换是没有任何意义的。
-
@ronanmarsh,为什么不呢?您也可以及时修复字符串以进行追加替换...
...append(...var2.replace("{t}", ... var1.split("$").join("$$").. -
@ronanmarsh,或者如果你在很多地方都这样做并且你不想每次都这样做,你可以创建自己的
replaceEscapingDollars(str, find, replacement) { return str.replace(find, replacement.split("$").join("$$"));
标签: javascript jquery html replace