将字符串 "true" / "false" 转换为布尔值

210

我有一个包含"true""false"的JavaScript字符串。

我如何在不使用eval函数的情况下将其转换为布尔值?


24
JSON.parse('true') 将返回布尔值 true,JSON.parse('false') 将返回布尔值 false。 - Hari Das
这些东西解决了所有的数字和字符串格式问题 https://dev59.com/znVC5IYBdhLWcg3wihmv#42136805 - Rohman HM
@HariDas 工作得非常完美!我很惊讶 Boolean 对象包装器不能正确转换 "true" 和 "false" 字符串。我认为它应该允许一个可选的第二个参数,告诉它尝试将字符串值转换为布尔值。 - HaulinOats
3个回答

405
var val = (string === "true");

不区分大小写:
const val = (string.toLowerCase() === "true");

10
可以。在声明“val”之前加上“var”可能会更好。 - hotshot309
8
使用三个等号 === 会让它变得更好。 - Vinch
18
另一个改进是将“string”更改为“string.toLowerCase()”。这样可以使“string”具有其他编码的真值,如“True”和“TRUE”。 - Max Strater
8
变量val的值是使用不区分大小写的方式匹配字符串中的"true"得到的。 - stephenbayer
7
变量val用于匹配字符串是否为"true"、"yes"、"t"、"y"或者"1",匹配结果不区分大小写且必须是整个单词匹配。 - Andrew Philips
显示剩余6条评论

27
您可以简单地使用以下代码:var result = (str == "true")

1
结果 = 结果 === "true"; 这里括号是不必要的,但应该检查类型和值。 - simhumileco

15

如果您正在使用变量result:

result = result == "true";

2
如果您正在使用变量result:result = result === "true"; 这里的括号是不必要的,但应该检查类型和值。 - simhumileco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接