在javascript中将字符串转换为布尔值

时间:2010-12-03 10:20:35

标签: javascript

如何将字符串转换为布尔值?

我尝试使用构造函数Boolean("false"),但它始终是真的。

13 个答案:

答案 0 :(得分:74)

我会在这里使用一个简单的字符串比较,据我所知,没有内置函数可以做你想做的事情(除非你想诉诸eval ...你没有)

var myBool = myString == "true";

答案 1 :(得分:11)

我想回答这个问题以改进已接受的答案。

为了提高性能,在实际情况下,表单输入可能会传递“true”或“false”等值,此方法将产生最佳效果。

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

JSPerf

enter image description here

答案 2 :(得分:9)

你也可以使用JSON.parse()函数

JSON.parse(" true")返回true(布尔值)

JSON.parse(" false")返回false(布尔值)

答案 3 :(得分:4)

实际上你没有得到布尔方法的含义。如果变量不为null或为空,它总是返回true。

var variable = some value; Boolean(variable);

如果我的变量有一些价值,那么它会 return true 其他 return false 您不能按照自己的想法使用布尔值。

答案 4 :(得分:3)

在javascript中将字符串转换为布尔转换。 e.g。

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

var bool_con = JSON.parse(bool);

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

答案 5 :(得分:2)

我仍然惊讶于人们盲目地投票选择那些不会起作用的解决方案,例如:

var myBool = myString == "true";

以上是 BUGGY !!!

不相信?试试myString = true(我的意思是布尔值为true)。现在的评价是什么? Opps:false!

<强>替代

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 :(得分:1)

取决于您在字符串中看到的错误。

空字符串,单词false,0,如果所有这些都是假的,或者只是空的假或只有单词false。

您可能需要使用自己的方法来测试字符串并返回true或false以100%确定它是否满足您的需要。

答案 7 :(得分:1)

我相信以下代码可以完成这项工作。

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'

只有当'foo'等于'true'或true(字符串或布尔值)时,此比较才会返回true。请注意,它区分大小写,因此“True”或任何其他变体都会导致错误。

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

同样,只有当变量'foo'等于'true',true,'false'或false时,上述句子才会生效。所以像'test'这样的任何其他值都将返回false,然后它将不会在'if'语句中运行代码。这样可以确保只考虑布尔值(字符串与否)。

在第3行中,'foo'的值最终被“转换”为布尔值。

答案 8 :(得分:0)

这些行给出以下输出:

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

答案 9 :(得分:-2)

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

不起作用,因为任何非空字符串都是true

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

有效,因为与字符串表示相比

答案 10 :(得分:-2)

不幸的是,我没有找到像Boolean.ParseBool('true')这样的函数,它返回true作为布尔类型,就像在C#中一样。 所以解决方法是

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

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

答案 11 :(得分:-5)

请参阅此问题以供参考:

How can I convert a string to boolean in JavaScript?

有几种方法:

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

var boolVal = Boolean("false");

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

答案 12 :(得分:-5)

你可以试试这个:

var myBoolean = Boolean.parse(boolString);