Powiel możliwe:
How can I convert a string to boolean in JavaScript?Rzucić bool w JavaScript
Cześć,
Jak mogę rzucić smyczkowy Bool?
Przykład: "False" na bool fałszywy
muszę to dla mojego JavaScript.
Dziękujemy za pomoc!
Powiel możliwe:
How can I convert a string to boolean in JavaScript?Rzucić bool w JavaScript
Cześć,
Jak mogę rzucić smyczkowy Bool?
Przykład: "False" na bool fałszywy
muszę to dla mojego JavaScript.
Dziękujemy za pomoc!
function castStrToBool(str){
if (str.toLowerCase()=='false'){
return false;
} else if (str.toLowerCase()=='true'){
return true;
} else {
return undefined;
}
}
... ale myślę, że odpowiedź Jona jest lepsza!
Z funkcją o nazwie 'castStrToBool', prawdopodobnie zawsze chcesz, aby zwróciła wartość boolowską. Dlatego "return String.prototype.toLowerCase.apply (str) ==" true ";" byłoby wszystko, co było potrzebne w treści funkcji. –
Trwa tu połączenie telepatyczne, co? :) –
@Andy E - Pomyślałem, że konsumentowi tej funkcji można prawdopodobnie pomóc, informując o nieoczekiwanych danych wejściowych, np. Zwracając 'undefined'. Oczywiście, jeśli jesteś zadowolony z tego, że '29/10/1976' lub' 1.056' zostanie sparsowany jako "prawdziwy", to twoja sugestia jest w porządku, ale zazwyczaj będzie to wskazywać na problem, który prawdopodobnie powinien zostać rozwiązany przed osiągnięciem etap "catStrToBool". –
Można to zrobić:
var bool = !!someString;
Jeśli to zrobić, dowiesz się, że ciąg stały "False"
jest w rzeczywistości boolean true
. Czemu? Ponieważ są to zasady w JavaScript. Wszystko, co nie jest undefined
, , pusty łańcuch (""
) lub numeryczne zero jest uważane za true
.
Jeśli chcesz narzucić własne reguły na smyczki (wątpliwym pomysłem, ale to oprogramowanie), można napisać funkcję z tabeli odnośników do zwracania wartości:
function isStringTrue(s) {
var falses = { "false": true, "False": true };
return !falses[s];
}
może.
edit — ustalił literówka - dzięki @Patrick
To rzeczywiście da 'false' dla' "False" ', ale czy nie da też' false' dla '" True "'? –
@El Ronnoco cóż, dziś rano może być niska kofeina, ale myślę, że ponieważ ciąg "True" jest * nie * w tabeli odnośników, 'falses (s)' zwróci 'undefined', i'! Undefined' jest "prawda". – Pointy
Typo: Powinno być 'return! Falses [s];' –
Można użyć czegoś takiego, aby zapewnić swój własny „jest prawdziwe” test na smyczki, pozostawiając drogę inne typy Porównaj nienaruszone:
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
jest to, co chcesz.
var string = "true"; var castedString = Boolean (eval (string)); // Czy odpowiedź jest dobra lub niebezpieczna? – CORSAIR