Comment puis-je vérifier si var est une chaîne en JavaScript ?
J’ai essayé ceci et cela ne fonctionne pas...
Comment puis-je vérifier si var est une chaîne en JavaScript ?
J’ai essayé ceci et cela ne fonctionne pas...
Vous étiez proches :
Sur une note liée : la vérification ci-dessus ne fonctionnera pas si une chaîne est créée avec comme le type sera
à la place. Il existe des solutions compliquées pour contourner ce problème, mais il est préférable de simplement éviter de créer des chaînes de cette façon, jamais.
L' typeof
opérateur n'est pas un infixe (donc le membre de GAUCHE de votre exemple n'a pas de sens).
Vous avez besoin de l'utiliser comme si...
if (typeof a_string == 'string') {
// This is a string.
}
Rappelez-vous, typeof
est un opérateur, pas une fonction. En dépit de cela, vous verrez typeof(var)
utilisé beaucoup dans la nature. Ce sens autant que var a = 4 + (1)
.
Aussi, vous pourriez aussi bien utiliser ==
(égalité opérateur de comparaison), puisque les deux opérandes sont des String
s (typeof
toujours retourne un String
), JavaScript est défini pour effectuer les mêmes étapes que j'ai utilisé ===
(opérateur de comparaison stricte).
Comme Box9 mentionne, cela ne les détecte pas un instancié String
objet.
Vous pouvez détecter qu'avec....
var isString = str instanceof String;
...ou...
var isString = str.constructor == String;
Mais cela ne fonctionnera pas dans un multi - window
environnement (pensez - iframe
s).
Vous pouvez obtenir autour de cette...
var isString = Object.prototype.toString.call(str) == '[object String]';
Mais encore une fois, (comme Box9 mentionne), vous êtes mieux de simplement en utilisant le littéral String
format, par exemple, var str = 'I am a string';
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.