Duplicar posible:
How can I convert a string to boolean in JavaScript?Cast a bool en JavaScript
Hola,
¿Cómo puedo convertir una cadena en Bool?
Ejemplo: "falso" a bool falsa
necesito esto para mi JavaScript.
¡Gracias por la ayuda!
Duplicar posible:
How can I convert a string to boolean in JavaScript?Cast a bool en JavaScript
Hola,
¿Cómo puedo convertir una cadena en Bool?
Ejemplo: "falso" a bool falsa
necesito esto para mi JavaScript.
¡Gracias por la ayuda!
function castStrToBool(str){
if (str.toLowerCase()=='false'){
return false;
} else if (str.toLowerCase()=='true'){
return true;
} else {
return undefined;
}
}
... pero creo que la respuesta de Jon es mejor!
Con una función llamada 'castStrToBool', probablemente siempre desee que devuelva un valor booleano. Por lo tanto, 'return String.prototype.toLowerCase.apply (str) == 'true';' sería todo lo que se necesitaba en el cuerpo de la función. –
Algo de conexión telepática sucede aquí, ¿eh? :) –
@Andy E - Pensé que el consumidor de esta función probablemente podría ser ayudado al ser informado de la entrada inesperada, por ejemplo, al devolver 'undefined'. Obviamente, si está contento de que '29/10/1976' o' 1.056' se analice como 'verdadero', entonces su sugerencia es correcta, pero esto generalmente indicará un problema que probablemente deba abordarse antes de llegar la etapa 'catStrToBool'. –
Usted puede hacer esto:
var bool = !!someString;
Si lo hace, descubrirá que la constante "False"
cadena es, de hecho, boolean true
. ¿Por qué? Porque esas son las reglas en Javascript. Cualquier cosa que no sea undefined
, null
, la cadena vacía (""
), o el cero numérico se considera true
.
Si desea imponer sus propias reglas para cuerdas (una idea dudosa, pero es su software), se podría escribir una función con una tabla de consulta para devolver valores:
function isStringTrue(s) {
var falses = { "false": true, "False": true };
return !falses[s];
}
tal vez.
edición — fija el error tipográfico - gracias @Patrick
Esto de hecho dará 'false' para' "False" 'pero ¿no dará también' false' para '" True "'? –
@El Ronnoco bien, puede que tenga poca cafeína esta mañana, pero creo que porque la cadena "Verdadero" es * no * en la tabla de búsqueda, 'falsos (s)' devolverá 'indefinido', y'! Indefinido' es 'verdadero'. – Pointy
Typo: debería ser 'return! Falsos [s];' –
Puede usar algo como esto para proporcionar su propia medida "es verdad" prueba para cuerdas, dejando a su vez otros tipos comparan afectado:
function isTrue(input) {
if (typeof input == 'string') {
return input.toLowerCase() == 'true';
}
return !!input;
}
function castBool(str) {
if (str.toLowerCase() === 'true') {
return true;
} else if (str.toLowerCase() === 'false') {
return false;
}
return ERROR;
}
ERROR
es lo que quieras que sea.
var string = "true"; var castedString = Boolean (eval (string)); // ¿Es bueno o es peligroso responder? – CORSAIR