Результат переменной требует форматирования в ColdFusion - PullRequest
0 голосов
/ 26 февраля 2011

Используя ColdFusion, если результат переменной неправильно отформатирован при визуализации, как я могу его изменить?Например, у меня есть переменная #number# и ее отображаемое значение равно ,3642,, но я хочу, чтобы она отображалась как 3642.

Как мне добиться этого форматирования?

Ответы [ 3 ]

4 голосов
/ 26 февраля 2011

Вы можете заменить все нечисловые символы регулярным выражением.

<!--- Your original variable --->
<cfset input = ",3642," />

<!--- This is your solution --->
<cfoutput>#rereplaceNocase(input,'[^0-9]','','all')#</cfoutput>
2 голосов
/ 26 февраля 2011

Ваш вопрос как бы открытый.Есть несколько функций форматирования строк в зависимости от того, что вы пытаетесь сделать, например NumberFormat, DecimalFormat, YesNoFormat, Mid и т. Д. Ответ Аарона хорош для приведенного вами примера, но в зависимости от других примеров, которые вы можете иметь,нужна альтернатива.Одним из общих способов было бы иметь собственную функцию форматирования, которая делает то, что вам нужно.А затем либо измените значение вашей переменной, либо просто используйте функцию форматирования, чтобы изменить его при выводе.
например

<cfset yourvariable = yourFormattingFunction(yourvariable)>

<cffunction name="yourFormattingFunction" output="false" hint="Does some custom formatting for your requirements">
  <cfargument name="somevariable" required="true">

  <cfset var newvariable = arguments.somevariable>

  <!--- do something to newvariable  --->
  <cfreturn newvariable>
</cffunction>

<cfoutput>#yourvariable#</cfoutput>

или

<cffunction name="yourFormattingFunction" output="false" hint="Does some custom formatting for your requirements">
  <cfargument name="somevariable" required="true">

  <cfset var newvariable = arguments.somevariable>

  <!--- do something to newvariable  --->
  <cfreturn newvariable>
</cffunction>

<cfoutput>#yourFormattingFunction(yourvariable)#</cfoutput>
1 голос
/ 28 февраля 2011

Прежде всего, я хотел бы задать вам вопрос, почему в возвращении есть нежелательные символы. Если вам это никогда не нужно, очистите переменную на самой стороне сервера перед возвратом

Если это невозможно, рассмотрите возможность использования некоторых из следующих методов

  • Используйте Regex для удаления нежелательных символов
  • если это дополнительное значение (,) всегда фиксированное, используйте ListChangeDelims(",3642,","","," );
...