2011-08-28 12 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) 


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