1

可能重复:
如何在 JavaScript 中将字符串转换为布尔值?

我有一个包含 2 个选项的选择列表,yes或者no类似:

   <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我们需要布尔值的属性。所以我想知道有什么方法就像

pareInt或者parseFloat我们可以将字符串转换为布尔值?

4

7 回答 7

5
var value = ('true' === $("select").val() );
于 2012-07-04T18:18:43.397 回答
1

您可以使用第三个:

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

那将转向0, "", false, null, undefined, NaNfalse而其他一切都转向true

但是使用我的演绎能力,你想要类似的东西"false" -> false,为此你可以使用其中之一:

var bol = something === "true"; //false for anything different than true
var bol = something !== "false"; //true for anything different than false
于 2012-07-04T18:46:38.543 回答
0

试试这个代码:

var myBool = myString == "true";
于 2012-07-04T18:17:51.833 回答
0

自己写怎么样?

我在 JavaScript 语法方面并不完全坚定,但试试这个:

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

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

于 2012-07-04T18:18:17.933 回答
0
var myBoolean = (myString === 'true') ? true : false;
于 2012-07-04T18:19:40.047 回答
0

就像是

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

应该做的伎俩。

于 2012-07-04T18:19:57.043 回答
0

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

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.");
  }
};
于 2012-07-04T18:21:35.003 回答