Подтвердить что ты не робот

Преобразование строки в Boolean в javascript

Как преобразовать строку в Boolean?

Я попытался использовать конструктор Boolean("false"), но он всегда прав.

4b9b3361

Ответ 1

Я бы использовал простое сравнение строк здесь, насколько я знаю, нет встроенной функции для того, что вы хотите сделать (если вы не хотите прибегать к eval..., который у вас нет).

var myBool = myString == "true";

Ответ 2

Я хотел бы ответить на это, чтобы улучшить принятый ответ.

Чтобы повысить производительность, и в реальных случаях, когда входные данные формы могут передавать значения, такие как "true" или "false", этот метод даст наилучшие результаты.

function stringToBool(val) {
    return (val + '').toLowerCase() === 'true';
}

JSPerf

enter image description here

Ответ 3

вы также можете использовать функцию JSON.parse()

JSON.parse( "true" ) возвращает true (Boolean)

JSON.parse( "false" ) return false (Boolean)

Ответ 4

На самом деле вы не понимаете значение Boolean method.It всегда возвращает true, если переменная не является пустой или пустой.

var variable = some value; Boolean(variable);

Если моя переменная имеет некоторое значение, тогда она будет return true еще return false Вы не можете использовать Boolean, как вы думаете.

Ответ 5

Я все еще удивляюсь тому, как люди вслепую голосуют за решения, которые не будут работать, например:

var myBool = myString == "true";

Вышеописанное значение BUGGY!!!

Не уверен? Просто попробуйте myString = true (я имею в виду логическое значение true). Какова оценка сейчас? Opps: false!

Alternative

var myString=X; // X={true|false|"true"|"false"|"whatever"}
myString=String(myString)=='true';
console.log(myString); // plug any value into X and check me!

всегда будет правильно оценивать!

Ответ 6

trick string для логического преобразования в javascript. например.

var bool= "true";
console.log(bool==true) //false

var bool_con = JSON.parse(bool);

console.log(bool_con==true) //true

Ответ 7

Зависит от того, что вы видите как false в строке.

Пустая строка, слово false, 0, должно быть все это false или только пустое или только слово false.

Вероятно, вам нужно создать собственный метод для проверки строки и вернуть true или false, чтобы убедиться, что он делает то, что вам нужно.

Ответ 8

Я считаю, что следующий код выполнит эту работу.

function isBoolean(foo) {
    if((foo + "") == 'true' || (foo + "") == 'false') {
        foo = (foo + "") == 'true';
    } else { 
        console.log("The variable does not have a boolean value.");
        return;
    }
    return foo;
}

Объяснение кода:

foo + ""

преобразует переменную 'foo' в строку, поэтому, если она уже имеет значение boolean, функция не вернет недопустимый результат.

(foo + "") == 'true'

Это сравнение вернет true, только если 'foo' равен 'true' или true (string или boolean). Обратите внимание, что он чувствителен к регистру, поэтому "True" или любое другое изменение приведет к ложному.

(foo + "") == 'true' || (foo + "") == 'false'

Аналогично, приведенное выше предложение приведет к истинному только в том случае, если переменная 'foo' равна 'true', true, 'false' или false. Поэтому любое другое значение, такое как "test", вернет false, и тогда он не будет запускать код внутри оператора "if". Это гарантирует, что будут учитываться только логические значения (строка или нет).

В 3-й строке значение "foo", наконец, "преобразуется" в boolean.

Ответ 9

Эти строки дают следующий вывод:

Boolean(1).toString(); // true
Boolean(0).toString(); // false

Ответ 10

javascript:var string="false";alert(Boolean(string)?'FAIL':'WIN')

не будет работать, потому что любая непустая строка true

javascript:var string="false";alert(string!=false.toString()?'FAIL':'WIN')

работает, потому что по сравнению с представлением строки

Ответ 11

К сожалению, я не нашел функцию вроде Boolean.ParseBool('true'), которая возвращает true как булевский тип, как в С#. Поэтому обходной путь

var setActive = 'true'; 
setActive = setActive == "true";

if(setActive)
// statements
else
// statements.

Ответ 12

См. этот вопрос для справки:

Как преобразовать строку в boolean в JavaScript?

Существует несколько способов:

// Watch case sensitivity!
var boolVal = (string == "true");

или

var boolVal = Boolean("false");

или

String.prototype.bool = function() {
    return (/^true$/i).test(this);
};
alert("true".bool());

Ответ 13

Вы можете попробовать следующее:

var myBoolean = Boolean.parse(boolString);