将字符串转换为数字而不丢失前导零

Convert String to a number without losing leading zeroes

我正在创建一个使用 OMDB API 搜索电影并显示它们的小项目。但是,每当我想显示有关标题的详细信息时,我需要将我尝试访问的标题的 IMDB ID 以 ttXXXXXXX 的形式发送到 API,其中 'X' 是指到一个整数 ID。

但是,当我尝试搜索在其 IMDB ID 中具有前导零的标题时出现问题(例如 tt0284753"Lippy the Lion and Hardy Har Har") ,因为 JavaScript parseInt() 方法删除了前导零,而 API 需要整数形式的 IMDB ID(也许它在后台执行 RegEx 以从中删除前导 "tt"s URL 字符串(或其他)。

目前我的实现是这样的:

//Show route
app.get("/results/:id",(req,res)=>{
    let strID = req.params.id;
    let imdbID = parseInt(strID.substr(2));
    let url = `http://omdbapi.com/?i=tt${imdbID}&apikey=${apikey}`;
    request(url,(error,response,body)=>{
        if(!error && response.statusCode == 200){
            let movie = JSON.parse(body);
            res.render("details",{movie:movie,url:url});
        }
    })

});

您在模板字符串中使用了 ID,因此最终它是一个字符串。不需要将其解析为整数。

号码没有 "leading zeros"。他们只有一个价值。 数字的文本表示 可能有前导零。

简单地将其保留为字符串,并且(或两者):

  • 允许 Javascript 在数字上下文中使用时将其强制转换为数字或...

  • 需要为数字时显式强制转换为数字