【问题标题】:how we can covert a string to boolean? [duplicate]我们如何将字符串转换为布尔值? [复制]
【发布时间】:2012-07-05 05:40:54
【问题描述】:

可能重复:
How can I convert a string to boolean in JavaScript?

我有一个包含 2 个选项的选择列表,yesno,类似于:

   <select size="1">
     <option value="true">yes</option>
     <option value="false">no</option>
   </select>

现在我想在 jquery-UI 按钮禁用属性中使用选定的值,意思是:

  $("button").button({ disabled : $("select").val() });

现在我的问题是我们将通过$("select").val() 得到的值是string

disabled 属性我们需要布尔值。所以我想知道有没有类似的方法

pareIntparseFloat 可以将字符串转换为布尔值?

【问题讨论】:

  • 由于歧义,您应该指定您认为是真还是假...本质上,所有非空字符串都是真的,即使是字符串"false"。你希望这发生吗?请更具体
  • 可能您想使用

标签: javascript jquery


【解决方案1】:

试试这个代码:

var myBool = myString == "true";

【讨论】:

    【解决方案2】:

    自己写怎么样?

    我对 JavaScript 语法并不十分熟悉,但试试这个:

    function a(inputString)
        if(inputString == "true")
            return true;
        if(inputString == "false")
            return false;
    

    我确信有更好的解决方案。这只是我的想法。

    【讨论】:

      【解决方案3】:
      var value = ('true' === $("select").val() );
      

      【讨论】:

        【解决方案4】:
        var myBoolean = (myString === 'true') ? true : false;
        

        【讨论】:

        • 三元运算符不需要,可以直接使用相等结果:var myBoolean = myString === 'true';
        • 有人真的是-1,因为我的评论?,这只是一个小小的改进,并不是 dv 的真正理由:/
        • @ajax333221 是的,您和接受的答案更优雅。另外,我不只是讨厌匿名投票者。
        【解决方案5】:

        有点像

        $("select").val() == 'true'

        应该可以解决问题。

        【讨论】:

          【解决方案6】:

          取决于你想要做多少次。如果它会在你的代码中乱扔垃圾,我会添加一个函数,比如:

          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.");
            }
          };
          

          【讨论】:

            【解决方案7】:

            你可以使用第三个:

            var num = +something; //toNumber
            var str = something + ""; //toString
            var bol = !!something; //toBoolean
            

            这会将0, "", false, null, undefined, NaN 变为false,其他所有内容都变为true

            但是使用我的推理能力,你想要像 "false" -&gt; false 这样的东西,为此你可以使用以下之一:

            var bol = something === "true"; //false for anything different than true
            var bol = something !== "false"; //true for anything different than false
            

            【讨论】:

              猜你喜欢
              • 2016-04-05
              • 2011-02-17
              • 2012-04-02
              • 2021-02-23
              • 2011-01-13
              • 1970-01-01
              • 2018-09-07
              相关资源
              最近更新 更多