例如:
用户提交带有 a 的表单并在其中<textarea name="mytext" cols="35" rows="2"></textarea>
按下ENTER。如何用 CR-LF 替换 CR-LF <br />
?
例如:
用户提交带有 a 的表单并在其中<textarea name="mytext" cols="35" rows="2"></textarea>
按下ENTER。如何用 CR-LF 替换 CR-LF <br />
?
CF 有一个名为 ParagraphFormat() 的函数:
<cfset form.userText = paragraphFormat(form.usertext)/>
从帮助文档 -
替换字符串中的字符:
<p>
)它可能比您想要的更多,因为它还查找双换行符并添加<p>
和</p>
标记。
Ben 还有一个增强版本(UDF),称为paragraph2,它很容易修改以获得您想要的确切效果。这是链接:
<cfset localVars.ReturnString = REReplace(localVars.ReturnString, "\r\n|\n\r|\n|\r", "<br />", "all")>
您不应该\n\r
自然击中,但如果它是由忘记正确顺序的开发人员插入的,则可能会发生。
这是一个更通用的函数的子集,用于根据您正在做的事情用其他内容替换行尾 (EOL) 字符(例如,必须以 Windows/Linux 格式、.ics 文件、html、cfheaders 等写出)
<cffunction name="ReplaceEOL" access="public" output="false" returntype="string" hint="Replaces EOL codes with other characters">
<cfargument name="String" required="true" type="string">
<cfargument name="ReplaceWith" required="true" type="string">
<cfreturn REReplace(Arguments.String, "\r\n|\n\r|\n|\r", Arguments.ReplaceWith, "all")>
</cffunction>
在显示值时,我不会使用 br 替换它,而是使用ParagraphFormat函数。
您可以使用 paragraphFormat() 函数,但有时替换函数可以帮助您可视化实际发生的情况。
一个例子:<cfset TheText=replace("#form.myText#",chr(13)&chr(10),"<br />","all")>
这将所有回车换行符替换为 html 换行符
我实际上更喜欢这样的东西:
<p>#REReplace(theParagraphText, "[#chr(10)#]+", "</p><p>", "ALL")#</p>
因为它将多个换行符组合成一个分段符。