Простой UDF для добавления пространства в строку - PullRequest
0 голосов
/ 28 августа 2011

Я заинтересован в создании UDF для холодного синтеза, который будет добавлять неразрывный пробел в начало строки, если количество символов в строке равно 1 или меньше.Есть предложения?

Ответы [ 4 ]

3 голосов
/ 28 августа 2011

Вот версия, которая позволяет передавать все параметры вместо жесткого кодирования.

Полезно, если ваша мощь в какой-то момент хочет больше, чем  , или может иметь различную минимальную длину.

<cffunction name="prependIfShort" returntype="string" output="false">
    <cfargument name="String" type="string"  required />
    <cfargument name="Prefix" type="string"  required />
    <cfargument name="Limit"  type="numeric" required />

    <cfif len(Arguments.String) LTE Arguments.Limit >
        <cfreturn Arguments.Prefix & Arguments.String />
    <cfelse>
        <cfreturn Arguments.String />
    </cfif>
</cffunction>

Использование, как задано в вопросе, выглядит следующим образом:

prependIfShort( Input , '&nbsp;' , 1 )

Возможно, имя можно улучшить, но это лучшее, что я могу придумать на данный момент.

2 голосов
/ 28 августа 2011

Чтобы добавить разнообразие:

<cffunction name="padString" returnType="string" access="public" output="no">
    <cfargument name="input" type="string" required="yes">

    <CFRETURN ((len(ARGUMENTS.input) GT 1) ? ARGUMENTS.input : ("&nbsp;" & ARGUMENTS.input))>
</cffunction>
2 голосов
/ 28 августа 2011
function prependSpace(myString) {
  var returnString=myString;
  if (len(myString) LTE 1) {
    returnString="&nbsp;" & myString;
  }
  return returnString;
}
1 голос
/ 28 августа 2011
// if using cf9+:
function padStr(str){
  return len(trim(str)) <= 1 ? 'nbsp;' & str : str
};
...