0

私はこれに少し困惑しています。

私は現在文字列を持っています。

ここにvariable.firstnameを入力してください

私がやりたいのvariable.firstnameは、文字列内でを見つけて、次のように使用するように変換することです#variable.firstname#

私はCF8を使用しており、使用を検討しましfindNoCase()たが、そのvariable.firstname部分はどこにでも表示されます。また、これをColdfusionカスタムタグで使用して、動的に入力できるユーザーの名を表示しようとしています。

他の機能を使用して変更することはできません。IE=variable['firstname]変数は、渡した動的変数の結果である可能性があり、コンテンツのクエリはカスタムタグ内に存在するためです。

4

3 に答える 3

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

二重ポンド記号に注意してください。

于 2013-01-23T14:34:00.870 に答える
0

他の機能を使用して変更することはできません IE = variable['firstname] 変数は、私が渡す動的変数の結果である可能性があり、コンテンツのクエリはカスタムタグ内に存在します。

ここであなたが言っていることを正確に理解しているかどうかはわかりませんが、 variables.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.

そうではない場合は、申し訳ありません。

于 2013-01-23T14:51:27.643 に答える
-1

variable.firstname を #variables.firstname# に置き換えてから、その変数の値を取得しようとしている場合は、置換<cfset yourNewString = replace(yourOldString,'variable.firstname', '##variables.firstname##', 'all')>を行ってから、結果の文字列を evaluate() 関数 (および内部のde() で CF がすべてを評価しないようにする): <cfset evaluatedString = evaluate(de(yourNewstring))>.

この種の変換が必要な variable.firstname 以外の変数がある場合は、 reReplace() を使用して正規表現に入り、それらすべてを 1 つのステートメントでキャッチする必要があります。私の正規表現はさびているので、自分でそのビットを Google で検索する必要があります。;o)

于 2013-01-23T20:45:57.630 に答える