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

use*_*820 169 javascript boolean

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

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

Ign*_*ams 341

var val = (string === "true");
Run Code Online (Sandbox Code Playgroud)

  • 另一个改进是将"string"更改为"string.toLowerCase()".这允许"string"具有其他编码为真,如"True"和"TRUE". (17认同)
  • 这有效.在声明`val`之前添加`var`可能更好. (10认同)
  • 三等于===更好 (7认同)
  • var val = string.match(/ true/i); //不区分大小写的匹配 (7认同)
  • var val = string.match(/ ^(true | yes | t | y | 1)$/i);/*不区分大小写+多+全字*/ (7认同)
  • 如果你这样做: var string = new String('true'); var val = (字符串 === 'true'); 那么 val 将为 false。您需要对字符串引用调用 .toString() 。如果您在原型/对字符串的引用上执行此操作,则尤其适用。 (2认同)
  • 而不是使用正则表达式,如何:`var val =(string.toLowerCase()==='true');` (2认同)

and*_*wmu 23

你可以简单地:var result = (str == "true").

  • `result = result === "true";` 这里的括号是不必要的,但应该检查类型和值。 (2认同)

cla*_*rkf 12

如果您正在使用变量结果:

result = result == "true";
Run Code Online (Sandbox Code Playgroud)

  • 如果你使用变量 result:`result = result === "true";` 这里的括号是不必要的,但应该检查类型和值。 (2认同)