Javascript 将字符串转换为数字而不丢失前导零
我正在创建一个小项目,它使用OMDB API搜索并显示电影。但是,每当我想显示标题的详细信息时,我都需要以Javascript 将字符串转换为数字而不丢失前导零,javascript,node.js,string,integer,omdbapi,Javascript,Node.js,String,Integer,Omdbapi,我正在创建一个小项目,它使用OMDB API搜索并显示电影。但是,每当我想显示标题的详细信息时,我都需要以ttXXXXXXX的形式发送我试图访问API的标题的IMDB ID,其中“X”表示整数ID 但是,当我尝试搜索IMDB ID中有前导零的标题时,问题就出现了(例如tt0284753,它是“Lippy the Lion and Hardy Har”),因为JavaScriptparseInt()方法删除前导零,API需要整数形式的IMDB ID(可能它在后台执行正则表达式,以从URL字符串(或
ttXXXXXXX
的形式发送我试图访问API的标题的IMDB ID,其中“X”表示整数ID
但是,当我尝试搜索IMDB ID中有前导零的标题时,问题就出现了(例如tt0284753
,它是“Lippy the Lion and Hardy Har”),因为JavaScriptparseInt()
方法删除前导零,API需要整数形式的IMDB ID(可能它在后台执行正则表达式,以从URL字符串(或其他任何内容)中删除前导的“tt”)
目前,我的实现是这样的:
//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,因此最终它是一个字符串。无需将其解析为和整数。数字没有“前导零”。它们只有一个值。数字的文本表示形式可能有前导零 简单地将其保留为字符串,并选择其中一个(或两个):
- 允许Javascript在数字上下文中使用时将其强制为数字或
- 当它需要是一个数字时,显式将其强制为一个数字
让imdbID=req.params.id;
并将URL设置为http://omdbapi.com/?i=${imdbID}&apikey=${apikey}
;但我上次尝试时,它实际上不起作用?因此我不得不采用这种奇怪的解决方法。好吧,现在我疯了。