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

EJS传递带前导零的URL id参数时前导零丢失如何解决?

问题根源

你遇到的前导零丢失问题是EJS模板渲染后,客户端JS把id值识别为数字类型导致的:
你的原始客户端代码渲染完成后,实际在浏览器中拿到的源码是:

var viewingHomebrew = 078262;

JS引擎会把不带引号的078262解析为数字字面量,数字的前导零会被自动忽略,最终得到数值78262。

解决方案

有两种常用的修复方式,任选其一即可:

方法1:直接给变量加引号(简单直观,适合确定id不含特殊字符的场景)

把客户端JS代码修改为:

var viewingHomebrew = '<%= homebrewId %>';

渲染后得到的代码为var viewingHomebrew = '078262';,被识别为字符串类型,自然保留前导零。

方法2:使用JSON.stringify处理(兼容性更好,支持含特殊字符的id)

如果id可能包含单引号、换行等特殊字符,推荐用JSON.stringify做序列化,注意EJS要使用<%-(输出原始内容,不转义HTML实体):

var viewingHomebrew = <%- JSON.stringify(homebrewId) %>;

渲染后会自动给字符串加双引号,同时处理所有特殊字符转义,兼容性更强。

两种方法修改后,viewingHomebrew都会是字符串类型,前导零不会丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:27:05