当我直接输出从 返回的值以及我如何停止它时,为什么Lucee会在前缀前面加一个空格字符? 我在函数输出中遇到一个非常奇怪的问题。我有一个用于清理用户输入的基本功能。当我尝试输出函数结果时,我得到的值前面带有空格。如果我将函数结果分配给变量,然后输出该变量,则不存在空格。这是我正在谈论的示例。想象有一个名为fn_SanitizeInput()的函数。 <cfset var_UserInput = "foo"> <cfset var_SanitizedUserInput = fn_SanitizeInput(var_UserInput)> // foo <cfoutput> Input Length: #len(var_UserInput)# // 3 Sanitized Input Length: #len(fn_SanitizeInput(var_UserInput))# // 3 #len(var_SanitizedUserInput)# // 3 Function Output: |#fn_SanitizeInput(var_UserInput)#| // | foo| Trimmed Function Output: |#trim(fn_SanitizeInput(var_UserInput))#| // | foo| Var Output: |#var_SanitizedUserInput#| // |foo| </cfoutput> 我不明白为什么len()函数返回3,但是在打印结果时显示四个字符。而且由于修剪函数仍然给我领先的空间,我觉得函数结果是正确的,并且Lucee在执行评估时出于某种未知原因而添加了空间。还有其他人遇到吗?如果需要,我可以先将所有结果分配给变量,但是我仍然想知道为什么会发生这种情况。 我在函数输出中遇到一个非常奇怪的问题。我有一个用于清理用户输入的基本功能。当我尝试输出函数结果时,我得到的值前面带有空格。如果我... 简短回答 更改 <cffunction name="fn_SanitizeInput" output="false"> <cfargument name="arg"> <cfreturn arguments.arg> </cffunction> 收件人 <cffunction name="fn_SanitizeInput" output="false"> <cfargument name="arg"> <cfreturn arguments.arg> </cffunction> 更长的答案 空间从何而来? 空格是从<argument>标签的结尾到<cfreturn>标签的开头。如果您真的想,可以 <cffunction name="fn_SanitizeInput"><cfargument name="arg"><cfreturn arguments.arg></cffunction> 您编写的代码可能看起来像: #len(fn_SanitizeInput(var_UserInput))# 但是实际上,是这样的: <cfsavecontent var="result">#fn_SanitizeInput(var_UserInput)#</cfsavecontent> #len(result)# 一些编辑 我真的希望cfml函数的默认输出模式是无声的,但是事实并非如此。为了我自己的理智,我设置了output="false",所以我不必担心。

问题描述 投票:1回答:1
我在函数输出中遇到一个非常奇怪的问题。我有一个用于清理用户输入的基本功能。当我尝试输出函数结果时,我得到的值前面带有空格。如果我将函数结果分配给变量,然后输出该变量,则不存在空格。这是我正在谈论的示例。想象有一个名为fn_SanitizeInput()的函数。

<cfset var_UserInput = "foo"> <cfset var_SanitizedUserInput = fn_SanitizeInput(var_UserInput)> // foo <cfoutput> Input Length: #len(var_UserInput)# // 3 Sanitized Input Length: #len(fn_SanitizeInput(var_UserInput))# // 3 #len(var_SanitizedUserInput)# // 3 Function Output: |#fn_SanitizeInput(var_UserInput)#| // | foo| Trimmed Function Output: |#trim(fn_SanitizeInput(var_UserInput))#| // | foo| Var Output: |#var_SanitizedUserInput#| // |foo| </cfoutput>

我不明白为什么len()函数返回3,但是在打印结果时显示四个字符。而且由于修剪函数仍然给我领先的空间,我觉得函数结果是正确的,并且Lucee在执行评估时出于某种未知原因而添加了空间。还有其他人遇到吗?如果需要,我可以先将所有结果分配给变量,但是我仍然想知道为什么会发生这种情况。

我在函数输出中遇到一个非常奇怪的问题。我有一个用于清理用户输入的基本功能。当我尝试输出函数结果时,我得到的值前面带有空格。如果我...

function coldfusion cfml removing-whitespace lucee
1个回答
0
投票

简短回答

© www.soinside.com 2019 - 2024. All rights reserved.