我可以在JavaScript中将表示布尔值的字符串(例如“true”、“false”)转换为内部类型吗?

我有一个隐藏的HTML表单,它根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并用内部布尔值动态填充。但是,一旦将该值放入隐藏的输入字段,它就会变成字符串。

一旦字段转换为字符串,我唯一能找到的确定它的布尔值的方法就是依赖于它的字符串表示的文字值。

var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';

有没有更好的方法来实现这一点?


当前回答

使用if语句:

函数parseBool(str){if(str.toLowerCase()=='true'){var val=真;}否则如果(str.toLowerCase()=='false'){var val=假;}其他{//如果不是true或false,则返回undefined//var val=未定义;}返回值;}console.log(parseBool(“”),parseBoo(“”的类型);console.log(parseBool('TrUe'),parseBool'('TrUe')的类型);console.log(parseBool('false'),parseBool'('false')类型);

其他回答

试试这个解决方案(它就像一个魅力!):

function convertStrToBool(str)
    {
        switch(String(str).toLowerCase())
            {
                case 'undefined': case 'null': case 'nan': case 'false': case 'no': case 'f': case 'n': case '0': case 'off': case '':
                    return false;
                    break;
                default:
                    return true;
            };
    };
Boolean.parse = function (str) {
  switch (str.toLowerCase ()) {
    case "true":
      return true;
    case "false":
      return false;
    default:
      throw new Error ("Boolean.parse: Cannot convert string to boolean.");
  }
};

我认为这是非常普遍的:

if(字符串(a).toLowerCase()==“true”)。。。

它说:

String(true) == "true"     //returns true
String(false) == "true"    //returns false
String("true") == "true"   //returns true
String("false") == "true"  //returns false

工作完美且非常简单:

var boolean = "false";
boolean = (boolean === "true");

//boolean = JSON.parse(boolean); //or this way.. 

要测试它:

var boolean=“false”;boolean=(boolean==“true”);//boolean=JSON.parse(布尔值)//或者这样。。if(布尔值==真){alert(“boolean=”+boolean);}其他{alert(“boolean=”+boolean);}

将字符串(“true”、“false”)和布尔值转换为布尔值

('' + flag) === "true"

标志可以在哪里

 var flag = true
 var flag = "true"
 var flag = false
 var flag = "false"