2011-08-28 50 views

回答

2
function prependSpace(myString) { 
    var returnString=myString; 
    if (len(myString) LTE 1) { 
    returnString=" " & myString; 
    } 
    return returnString; 
} 
+0

我投* *這一個,因爲它會從CF5起CF的所有版本,所以在我看來是最實用的解決方案。很高興看到人們擁有不同的方法。 –

+0

我幾乎把它投下來,因爲代碼有一個錯誤,但我決定改正它。 :)但是,如果我這樣做,我會做一個參數化的版本,而不是浪費時間創建一個臨時變量。 –

+0

@Peter:感謝您的修復。是的,並不盡如人意,但確實足以讓OP成爲一個開始的地方。 – ale

2

要添加一些品種:

<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> 
1
// if using cf9+: 
function padStr(str){ 
    return len(trim(str)) <= 1 ? 'nbsp;' & str : str 
}; 
+0

你爲什麼要修剪字符串? –

3

這裏有一個版本,它允許在而不是硬編碼的所有參數進行傳遞。

如果有用的話你的力量在某些時候需要的不僅僅是&nbsp;以上,或可能有不同的最小長度。

<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) 


名稱或許可以得到改善,但它是我此刻想的是最好的。