将字符串转换为变量coldfusion

时间:2013-01-23 14:21:15

标签: coldfusion tags

我对这个有点难过..

我目前有一个字符串。

  

请在此处输入您的variable.firstname

我想要做的是找到字符串中的variable.firstname并将其转换为#variable.firstname#

我正在使用CF8,我看过使用findNoCase(),但variable.firstname部分可以出现在任何地方。我也试图在Coldfusion自定义标签中使用它来简单地显示可以动态填充的用户的名字。

我无法使用任何其他功能来更改它IE = variable ['firstname],因为该变量可能是我传入的动态变量的结果,并且内容的查询将驻留在自定义标记内。

3 个答案:

答案 0 :(得分:4)

 <cfset yourNewString = replace(yourOldString,'variable.firstname', 
'##variable.firstname##', 'all')>

注意双磅标志。

答案 1 :(得分:0)

  

我无法使用任何其他功能来改变IE =   变量['firstname]因为变量可能是a的结果   传入的动态变量,内容的查询将驻留   在自定义标记内。

我不确定我到底知道你在这里说的是什么,但如果你说变量.firstname来自另一个变量而.firstname是动态部分,你仍然可以使用数组表示法。

<cfset myName = "Travis">
<cfset yourName = "user125264">
<cfset myCustomVariable = "myName">
<cfoutput>Hi, My name is #variables[myCustomVariable]#. </cfoutput>
<cfset myCustomVariable = "yourName">
<cfoutput>Your name is #variables[MyCustomVariable]#.</cfoutput>

输出:Hi, My name is Travis. Your name is user125264.

如果那不是你的意思,我道歉。

答案 2 :(得分:-1)

如果您尝试使用#variables.firstname#替换variable.firstname,然后获取该变量的值,则需要执行替换<cfset yourNewString = replace(yourOldString,'variable.firstname', '##variables.firstname##', 'all')>,然后将生成的字符串包装在evaluate()函数(以及内部de()来阻止CF评估所有内容):<cfset evaluatedString = evaluate(de(yourNewstring))>

如果除了variable.firstname之外还有更多需要这种翻译的变量,你需要使用reReplace()进入regex以在一个语句中捕获它们。我的正则表达式是生锈的,所以你需要自己谷歌那么一点。 ; O)