日期:2014-05-16 浏览次数:20476 次
我可以转换成一个字符串,表示一个布尔值(比如,'真正的','假')到JavaScript中的内在类型?
我有一个隐藏的HTML表单更新后,用户的选择为基础的名单之内。 这个表格包含一些领域,代表布尔值,并具有内在动态的布尔值填充。 但是,一旦这个值放入隐藏的输入字段就成了一个字符串。
我唯一能找到,以确定该字段的布尔值,一旦被转换成一个字符串,是取决于它的字符串表示的文本值。
var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';
有没有更好的方式来完成这项工作?
你也许应该谨慎使用您的特定需求这两种方法:
var myBool = Boolean("false"); // == true
var myBool = !!"false"; // == true
任何字符串这不是空字符串使用他们的计算结果为true
虽然他们是最干净的方法,我能想到的关于对布尔的转换,我认为他们不是你要找的。
关于你建议的方式,可以让使用的身份运营商===
它不作任何隐式类型转换时,比较不同类型的变量有严格的,而不是平等的经营者==
它:
var isTrueSet = (myValue === 'true');
String.prototype.bool = function() {
return (/^true$/i).test(this);
};
alert("true".bool());
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);
}
}