日期:2014-05-16  浏览次数:20455 次

我如何将字符串转换为布尔值在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