¿Cómo puedo detectar si una variable es una cadena?cómo detectar si la variable es una cadena
Respuesta
Esta es la forma especificada en la especificación de ECMAScript para determinar la propiedad interna [[Class]].
if(Object.prototype.toString.call(myvar) == '[object String]') {
// a string
}
From 8.6.2 Object Internal Properties and Methods:
El valor de la [[Clase]] propiedad interna se define por esta especificación para cada tipo de objeto incorporado. El valor de la propiedad interna [[Class]] de un objeto host puede ser cualquier valor String excepto uno de "Argumentos", "Array", "Boolean", "Fecha", "Error", "Función", "JSON" "," Matemáticas "," Número "," Objeto "," RegExp ", y " Cadena ". El valor de una propiedad interna [[Class]] se usa internamente para distinguir diferentes tipos de objetos. Tenga en cuenta que esta especificación no proporciona ningún medio para que un programa acceda a ese valor, excepto a través de Object.prototype.toString (consulte 15.2.4.2).
Para un ejemplo de cómo esto es útil, considere este ejemplo:
var str = new String('some string');
alert(typeof str); // "object"
alert(Object.prototype.toString.call(str)); // "[object String]"
Si utiliza typeof
, se obtiene "object"
.
Pero si utiliza el método anterior, obtendrá el resultado correcto "[object String]"
.
no estoy seguro de por qué esta es la respuesta aceptada. los objetos no son cadenas. 'new String()' da como resultado un objeto que contiene una serie de propiedades indexadas, cada una con un valor correspondiente al carácter en esa posición. Sí, se forzará en una cadena mediante el método 'to'String' de' Object', pero el hecho es que 'new String ('some string')' no es una cadena, en sí misma. 'typeof someString ===" string "' es la forma correcta de determinar si una variable es una cadena. Si una variable puede * convertirse en * una cadena es irrelevante; cada objeto que puede rastrear su cadena de prototipos a 'Objeto' tiene' toString' – jackwanders
Puede usar typeof
para hacerlo, pero para muchas cosas, este es un mal diseño.
if (typeof myVar == "string") {
alert("I'm a string!");
}
¿Qué es un buen diseño? – Webnet
Depende de lo que estás tratando de hacer. Normalmente, debe saber qué tipo está recibiendo o no debería importar (es decir, le hará lo mismo, independientemente del tipo). –
¿qué hay de usar isNaN()? –
typeof('yourstring');// returns string
Use typeof.
if (typeof foo == 'string')
Probablemente es más claro no utilizar palabras clave como variables en los ejemplos. – crdx
Use alert(typeof "hello");
alert(typeof 123);
Ref .: here.
var str = new String("some string");
if(str.constructor.name === "String")
{
alert("I'm a string!");
}
o simplemente:
if(str.constructor === String)
{
alert("I'm a string!");
}
No creo que necesitamos para tratar new String('some string')
como una cadena, porque si tratamos:
new String('abc')==='abc'
Se volverá falsa!
Pero si tratamos:
String('abc')==='abc'
Se devolverá true.
('str'.constructor === String) && alert('its a string!');
- 1. ¿Cómo detectar si una variable ha cambiado?
- 2. ¿Cómo verificar si una variable es igual a una cadena u otra cadena?
- 3. ¿Detectar si la URL especificada es una imagen en Android?
- 4. cómo detectar rápidamente si una cadena está comprimida zlib?
- 5. Detectar si una cadena contiene una cadena en Jquery/Javascript cuando la cadena está delimitada inusualmente
- 6. ¿Cómo detectar si una cadena contiene caracteres especiales?
- 7. ¿Cómo detectar si una cadena contiene al menos un número?
- 8. cómo saber si una variable es una tupla, una cadena o un número entero?
- 9. ¿Cómo determinar si la variable es una función en Python?
- 10. ¿Cómo puedo saber si una variable de python es una cadena o una lista?
- 11. ¿Cómo saber si una cadena es xml?
- 12. Compruebe si una variable es una matriz
- 13. ¿Cómo verificar si una variable es un número o una cadena?
- 14. Comprueba si la variable es una fecha válida con PHP
- 15. Detectar si una cadena estaba codificada en UTF-8
- 16. WPF MVVM: cómo detectar si una vista es "sucia"
- 17. PHP: ¿Cómo detectar si una cadena de entrada es el árabe
- 18. Cómo detectar si el archivo es una imagen en perl
- 19. Cómo determinar si una cadena es un número en C#
- 20. PHP ¿Cómo saber si una variable es una referencia?
- 21. ¿Cómo puedo detectar si una pantalla es sensible al tacto?
- 22. Cómo detectar si NSString es nulo?
- 23. compruebe si una cadena es una URL
- 24. cómo saber si una variable de JavaScript es una función
- 25. ¿Cómo detectar si una unidad específica es un disco duro?
- 26. Rieles: ¿es posible verificar si una cadena es binaria?
- 27. ¿Cómo detectar si la señal GPS es débil o alta?
- 28. ¿Cómo detectar si un número dado es un número entero?
- 29. Prueba si una variable es serializable
- 30. Javascript: utilizar una variable, o si es indefinido, una cadena predeterminada
Es posible que desee utilizar underscore.js, tiene métodos para esto incorporado en http: //documentcloud.github.com/underscore/# isString - en el caso de isString utiliza el método mencionado por user113716 –
posible duplicado de [Comprobar si una variable es una cadena] (http://stackoverflow.com/questions/4059147/check-if-a- variable-es-una-cadena) – pkyeck
posible duplicado de [Comprobar si la variable es número o cadena en javascript] (http://stackoverflow.com/questions/1303646/check-whether-variable-is-number-or-string- in-javascript) – Flimzy