如何在Lucee CFML动态填充的文本框中添加换行符
解决Lucee脚本中数据库字段文本换行问题
核心问题排查
你之前尝试添加\n或<br>无效,大概率是因为用了单行输入框(<input type="text">)——这类控件不支持换行,必须用**多行文本框(<textarea>)**才能显示换行效果。
具体实现代码
假设你从数据库查询得到的原始字段字符串存在变量fieldString中,用Lucee脚本处理并渲染:
<cfscript> // 原始数据库字段字符串(模拟从查询获取的内容) fieldString = "CohostID|int|\ Name|nvarchar|\ email|nvarchar|\ datecreated|datetime|\ dateupdated|datetime|\ isVisible|bit|((1))\ timezone|nvarchar|\"; // 正则替换分隔符为换行符:匹配`|\ `或`\ `,替换为换行符chr(10) formattedFields = reReplace(fieldString, "(\\\s)|(\|\\\s)", chr(10), "all"); </cfscript> <!--- 用多行文本框渲染,自动识别换行符 ---> <textarea name="editFields" rows="7" cols="60">#formattedFields#</textarea>
效果说明
- 处理后的字符串会在每个字段条目末尾自动换行,和你预期的格式一致:
CohostID|int| Name|nvarchar| email|nvarchar| datecreated|datetime| dateupdated|datetime| isVisible|bit|((1)) timezone|nvarchar|\ - 如果是要在普通HTML页面显示(而非文本框编辑),只需把替换目标改成
<br>即可:formattedFields = reReplace(fieldString, "(\\\s)|(\|\\\s)", "<br>", "all");
内容的提问来源于stack exchange,提问作者MikeKear
相关产品推荐
相关产品推荐

