L'utilisation de parseInt() est une mauvaise idée, principalement parce qu'elle n'échoue jamais. De plus, certains résultats peuvent être inattendus, comme dans le cas de INFINITY.
Vous trouverez ci-dessous la fonction permettant de gérer les comportements inattendus.
function cleanInt(x) {
x = Number(x);
return x >= 0 ? Math.floor(x) : Math.ceil(x);
}
Voir les résultats des tests ci-dessous.
console.log("CleanInt: ", cleanInt('xyz'), " ParseInt: ", parseInt('xyz'));
console.log("CleanInt: ", cleanInt('123abc'), " ParseInt: ", parseInt('123abc'));
console.log("CleanInt: ", cleanInt('234'), " ParseInt: ", parseInt('234'));
console.log("CleanInt: ", cleanInt('-679'), " ParseInt: ", parseInt('-679'));
console.log("CleanInt: ", cleanInt('897.0998'), " ParseInt: ", parseInt('897.0998'));
console.log("CleanInt: ", cleanInt('Infinity'), " ParseInt: ", parseInt('Infinity'));
résultat :
CleanInt: NaN ParseInt: NaN
CleanInt: NaN ParseInt: 123
CleanInt: 234 ParseInt: 234
CleanInt: -679 ParseInt: -679
CleanInt: 897 ParseInt: 897
CleanInt: Infinity ParseInt: NaN
0 votes
Je suis désolé, je n'ai pas vu le reste du code que vous avez posté. Alors essayez parseInt(req.params.year.replace(/[^0-9]/g, ''),10)
0 votes
Duplicata possible de Problèmes avec javascript "parseInt()"
0 votes
Pouvez-vous consigner req.params.year et me faire savoir ce que vous obtenez.
0 votes
Req. landaus .année ou req. paramètres .année ?
0 votes
Oui, c'était une erreur de frappe
0 votes
Lorsque je fais console.log(req.params.year) j'obtiens 2016... Quand je fais console.log(typeof req.params.year) j'obtiens une chaîne de caractères c'est pourquoi j'essaye de la convertir en nombre.
0 votes
Pouvez-vous montrer un exemple complet avec le code du serveur et curl ou l'appel au navigateur ?