如何用<br />替换CR + LF?

Sey*_*sen 10 coldfusion textarea newline

例如:

用户提交带有a <textarea name="mytext" cols="35" rows="2"></textarea>ENTER在其中按下的表单.如何用一个<br />?替换CR-LF ?

Mar*_*ger 16

CF有一个名为ParagraphFormat()的函数:

<cfset form.userText = paragraphFormat(form.usertext)/>
Run Code Online (Sandbox Code Playgroud)

来自帮助文档 -

替换字符串中的字符:

  • 带空格的单个换行符(CR/LF序列)
  • 带有HTML段落标记的双重换行符(<p>)

它可能比你想要的更多,因为它也寻找双线断点和添加<p></p>标签.

Ben还有一个名为paragraph2的增强版本(UDF),它很容易修改以获得您想要的确切效果.这是链接:

http://www.cflib.org/udf/ParagraphFormat2

  • 我认为ParagraphFormat2在这种情况下可能更好,因为它确实将单行中断转换为"<br />"(以及双行换行到HTML段落). (6认同)

nos*_*leg 12

<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>
Run Code Online (Sandbox Code Playgroud)