2016-02-29 85 views
0

样品字符串美元符号的Javascript str.replace所取代:与不工作

https://fw.adsafeprotected.com/rjss/bs.serving-sys.com/52023/7720220/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=1234567890&PluID=0&w=300&h=600&ord=[timestamp]&ucm=true&ncu=$${CLICK_URL_ENC}$&adsafe_preview=${IS_PREVIEW}` 

替换我试图让:

$${CLICK_URL_ENC}$ --> $$${CLICK_URL_ENC}$$ 
[timestamp]   --> ${CACHEBUSTER} 

所需的输出:

https://fw.adsafeprotected.com/rjss/bs.serving-sys.com/52023/7720220/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=1234567890&PluID=0&w=300&h=600&ord=${CACHEBUSTER}&ucm=true&ncu=$$${CLICK_URL_ENC}$$&adsafe_preview=${IS_PREVIEW} 

代码我已经试过:

代码:

var v = $("textarea#creative-content").val(); 
v = v.replace(/\$\$\{CLICK\_URL\_ENC\}\$/g, "$$${CLICK_URL_ENC}$$"); 
v = v.replace("[timestamp]","${CACHEBUSTER}"); 
console.log(v); 

输出:

  • 改变[timestamp]${CACHEBUSTER}
  • 改变$${CLICK_URL_ENC}$$$${CLICK_URL_ENC}$$没有

代码:

var v = $("textarea#creative-content").val(); 
v = v.replace("$${CLICK_URL_ENC}$", "$$${CLICK_URL_ENC}$$"); 
v = v.replace("[timestamp]","${CACHEBUSTER}"); 
console.log(v); 

输出:

  • 改变[timestamp]${CACHEBUSTER}
  • 改变$${CLICK_URL_ENC}$$$${CLICK_URL_ENC}$$没有

代码:

var v = $("textarea#creative-content").val(); 
v = v.replace("\$\${CLICK_URL_ENC}\$", "\$\$\${CLICK_URL_ENC}\$\$"); 
v = v.replace("[timestamp]","${CACHEBUSTER}"); 
console.log(v); 

输出:

  • 变化d [timestamp]${CACHEBUSTER}
  • 改变$${CLICK_URL_ENC}$$$${CLICK_URL_ENC}$$没有

我怎样才能让我在寻找使用JavaScript/jQuery的变化?

+2

你[需要转义'$'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String /替换#Specifying_a_string_as_a_parameter)以各种方式,因为它是一个特殊的字符。 –

+0

@JamesThorpe我试过了'v = v.replace(“\ $ \ $ {CLICK_URL_ENC} \ $”,“\ $ \ $ \ $ {CLICK_URL_ENC} \ $ \ $”);'没有运气...... – Ben

+0

阅读文档 - 您不会使用\转义它。 –

回答

1

在更换$是当你拍摄一组,因此它需要使用特殊字符逃避...带$符号,这给我们不可读的东西,像这样:

'$${CLICK_URL_ENC}$'.replace(/\$\${CLICK_URL_ENC}\$/g, '$$$$${CLICK_URL_ENC}$$$'); 
1

您需要escape美元符号。这是通过在一行中输入两个来完成的。你想在开始的时候,这意味着你必须有替换字符串在6个美元符号3点美元的迹象:

v.replace("$${CLICK_URL_ENC}$", "$$$$$${CLICK_URL_ENC}$$$$");