我对这个有点难过..
我目前有一个字符串。
请在此处输入您的variable.firstname
我想要做的是找到字符串中的variable.firstname
并将其转换为#variable.firstname#
我正在使用CF8,我看过使用findNoCase()
,但variable.firstname
部分可以出现在任何地方。我也试图在Coldfusion自定义标签中使用它来简单地显示可以动态填充的用户的名字。
我无法使用任何其他功能来更改它IE = variable ['firstname],因为该变量可能是我传入的动态变量的结果,并且内容的查询将驻留在自定义标记内。
答案 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)