You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在EJS模板中如何限制从JS获取内容的显示字符数?

在EJS中截断文本仅显示前100字符的实现方案

方法一:直接在模板中使用字符串截断逻辑

在EJS模板里通过JS表达式直接判断文本长度,超过100字符时截取前100位并添加省略号:

<!-- 假设从JS传递的内容存在post对象的body字段中 -->
<p><%= post.body.length > 100 ? post.body.slice(0, 100) + '...' : post.body %></p>
  • 用slice(0, 100)截取前100个字符,也可替换为substring(0, 100),效果一致
  • 若文本长度≤100,则直接显示完整内容

方法二:封装自定义过滤器(适合多处复用场景)

如果项目中多个页面需要文本截断,可在Express中注册全局自定义函数,方便模板调用:

  1. 在Express配置文件中添加全局方法:
// app.js 或相关配置文件
app.locals.truncateText = function(text, maxLength = 100) {
  // 处理文本为null/undefined的情况,避免报错
  if (!text) return '';
  return text.length > maxLength ? text.slice(0, maxLength) + '...' : text;
};
  1. 在EJS模板中直接调用该方法:
<p><%= truncateText(post.body) %></p>
<!-- 也可自定义截断长度,比如显示前150字符 -->
<p><%= truncateText(post.body, 150) %></p>

额外注意

如果body字段包含HTML标签,直接截断可能导致标签未闭合、页面样式错乱:

  • 若不需要保留HTML格式,可先移除标签后再截断
  • 若要保留HTML结构,需使用支持HTML安全截断的工具,确保标签完整闭合

内容的提问来源于stack exchange,提问作者Shreyansh Malhotra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:15:43