当前位置: 代码迷 >> JavaScript >> 小弟我怎么将字符串转换为布尔值在JavaScript
  详细解决方案

小弟我怎么将字符串转换为布尔值在JavaScript

热度:167   发布时间:2013-10-08 15:37:20.0
我如何将字符串转换为布尔值在JavaScript?

我如何将字符串转换为布尔值在JavaScript?

?

??English Language Content












我如何将字符串转换为布尔值在JavaScript?

我可以转换成一个字符串,表示一个布尔值(比如,'真正的','假')到JavaScript中的内在类型?

我有一个隐藏的HTML表单更新后,用户的选择为基础的名单之内。 这个表格包含一些领域,代表布尔值,并具有内在动态的布尔值填充。 但是,一旦这个值放入隐藏的输入字段就成了一个字符串。

我唯一能找到,以确定该字段的布尔值,一旦被转换成一个字符串,是取决于它的字符串表示的文本值。

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


有没有更好的方式来完成这项工作?

#: 263965 ?????javascript? ????User: Kevin

Answer: 264037

你也许应该谨慎使用您的特定需求这两种方法:

var myBool = Boolean("false");  // == true 
var myBool = !!"false";  // == true 


任何字符串这不是空字符串使用他们的计算结果为true 虽然他们是最干净的方法,我能想到的关于对布尔的转换,我认为他们不是你要找的。

关于你建议的方式,可以让使用的身份运营商=== 它不作任何隐式类型转换时,比较不同类型的变量有严格的,而不是平等的经营者== 它:

var isTrueSet = (myValue === 'true'); 



#: 264037?????javascript? ????User: guinaps

Answer: 264180

String.prototype.bool = function() { 
    return (/^true$/i).test(this); 
}; 
alert("true".bool()); 



#: 264180?????javascript? ????User: Shadow2531

Answer: 1414175

stringToBoolean: function(string){ 
switch(string.toLowerCase()){ 
case "true": case "yes": case "1": return true; 
case "false": case "no": case "0": case null: return false; 
default: return Boolean(string); 
} 
} 



#: 1414175?????javascript? ????User: Steven

Answer: 264071

记住匹配情况:

var isTrueSet = (myValue.toLowerCase() === 'true'); 


此外,如果它是一个表单元素复选框,还可以检测如果选中复选框:

var isTrueSet = document.myForm.IS_TRUE.checked; 


假设,如果它被选中,这是“设置”等于事实。 这种计算为真/假。

#: 264071?????javascript? ????User: Jared Farrish

Comments for #: 264071

为什么你会做三元? 你已经有了一个布尔那里???#:120296??nickf
因为你可以? 你的“你已经有了一个布尔有”是什么意思????#:120353??Jared Farrish
卫生署! toLowerCase。 卫生署!???#:120355??Jared Farrish
贾里的===已经是一个布尔条件下,三元是多余的。???#:120419??FlySwat
正确的。 反正我讨厌ternaries。 嗯,我想我是对的toLowerCase,所以我编辑了它删除三元。???#:120435??Jared Farrish

Answer: 264097

您的解决方案是好的。

=== 也只是愚蠢在这种情况下,由于外地的value 将永远是string

#: 264097?????javascript? ????User: insin

Answer: 920942


如果(字符串(1)==“真”)(
/ /真块

否则(
/ /假块

#: 920942?????javascript? ????User: n/a

Answer: 323546

我认为这是非常普遍的:
如果(字符串(1)==“真”)...

当然:

字符串(真)==“真正的”/ /返回true

字符串(假)==“真正的”/ /返回false

字符串(“真”)==“真实”/ /返回true

字符串(“假”)==“真实”/ /返回false

#: 323546?????javascript? ????User: n/a

Answer: 264109

如果有一些其他的代码的布尔值转换为字符串,您需要确切知道这些代码存储true / false值。 无论是或需要获得一个函数,扭转这一转换。

有无穷多个方法来表示字符串中的布尔值(“真”,“Y”型,“1”等)。 所以,你不应该依赖一些通用字符串到布尔转换器如布尔(myValue)。 您需要使用一个例行程序,推翻了原来的布尔到字符串的转换,无论是。

如果你知道它能够将真正的布尔值为“true”字符串,那么你的示例代码罚款。 除了你应该使用== ===代替,因此没有自动类型转换。

#: 264109?????javascript? ????User: JW

Answer: 264105

你需要单独的(在你的想法)您选择的价值和该值的表示。

选择在JavaScript逻辑的一个点,他们需要从字符串哨兵过渡到本地类型,做一个比较有,最好的地方只有得到执行的每个需要转换价值的一次。 请记住,以解决需要做些什么,如果字符串不是一个哨兵的脚本知道(即你默认为true或假?)

换句话说,是的,你需要依赖于字符串的值。 :-)

#: 264105?????javascript? ????User: staticsan

Answer: 263969

 var myBool = Boolean.parse("true"); 


var myBool = Boolean("true"); 


var myBool = !!"true"; 


不知道第一个是IE特定的。

#: 263969?????javascript? ????User: FlySwat

Comments for #: 263969

下面是与使用布尔的事情(“真”)。 这是一个有点误导,因为布尔(“假”)和布尔('跆拳道“)评估的也是如此。你的第三个答案是非常相似。???#:120241??Kevin

  相关解决方案