在JavaScript中强制转换布尔值[duplicate]

nafvub8i  于 2023-03-06  发布在  Java
关注(0)|答案(4)|浏览(107)
    • 此问题在此处已有答案**:

12年前就关闭了。

    • 可能重复:**

How can I convert a string to boolean in JavaScript?
你好,
如何在Bool中强制转换字符串?
示例:"False"为布尔值false
我的JavaScript需要这个。
感谢您的帮助!

u2nhd7ah

u2nhd7ah1#

您可以执行以下操作:

var bool = !!someString;

如果你这样做,你会发现字符串常量"False"实际上是布尔值true。为什么?因为这是Javascript的规则。任何不是undefinednull、空字符串("")、NaN或数字零的东西都被认为是true
如果你想对字符串强加自己的规则(这是个可疑的想法,但这是你的软件),你可以编写一个函数,用查找表返回值:

function isStringTrue(s) {
  var boolValues = { "false": true, "False": true, "true": true, "True": true };
  return boolValues[s];
}

也许吧。

  • 编辑 *-修正了错字-谢谢@Patrick
ctehm74n

ctehm74n2#

可以使用类似下面的代码为字符串提供自己的自定义“is true”测试,同时不影响其他类型的比较方式:

function isTrue(input) {
    if (typeof input == 'string') {
        return input.toLowerCase() == 'true';
    }

    return !!input;
}
s5a0g9ez

s5a0g9ez3#

function castStrToBool(str){
    if (str.toLowerCase()=='false'){
       return false;
    } else if (str.toLowerCase()=='true'){
       return true;
    } else {
       return undefined;
    }
}

......但我觉得乔恩的答案更好!

7cjasjjr

7cjasjjr4#

function castBool(str) {
    if (str.toLowerCase() === 'true') {
        return true;
    } else if (str.toLowerCase() === 'false') {
        return false;
    }
    return ERROR;
}

ERROR是你想要的任何东西。

相关问题