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

EJS报错:无法找到与<%匹配的闭合标签 排查后仍未解决

问题原因定位

报错Could not find matching close tag for "<%"由两处语法问题导致,常规排查时很容易漏掉这类书写细节:

  • 核心触发点:for循环内部判断RGP类型的if语句闭合标签写残缺了。原代码对应位置写的是<% } %,末尾少了EJS闭合标签必需的>,解析器会判定这个<%开标签没有匹配的闭合标记,直接抛出标签不匹配错误。
  • 额外语法隐患:表格第一列输出物料信息的EJS标签里,Items[i].ItemCode和Items[i].ItemName两个变量之间没有拼接运算符,即便修复标签问题,这里也会触发JS运行时错误。
修复方案
  1. 补全残缺的if闭合标签,将<% } %修改为<% } %>
  2. 补全物料名称列的变量拼接逻辑,若需要两个值中间加空格分隔,写法调整为<%= Items[i].ItemCode + ' ' + Items[i].ItemName %>即可
修复后对应位置的代码片段
<% for(let i = 0; i < Items.length; i++) { %>
<tr>
  <td><%= Items[i].ItemCode + ' ' + Items[i].ItemName %></td>
  <td><%= Items[i].Unit %></td>
  <td><%= Items[i].Quantity%></td>
  <% if (GatePassType === "RGP") { %>
  <td><%=Items[i].ReturnDate%></td>
  <% } %>
  <td><%= Items[i].Remarks %></td>
</tr>
<% } %>

排查EJS标签不匹配错误时,除了检查标签是否成对、逻辑语句语法是否正确,还要重点检查标签的书写完整性:所有<%起始的标签,末尾必须是完整的%>,缺任意一个字符都会被判定为标签未闭合。

内容的提问来源于stack exchange,提问作者Shubham Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:48:27