我可以在JavaScript中将表示布尔值的字符串(例如“true”、“false”)转换为内部类型吗?

我有一个隐藏的HTML表单,它根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并用内部布尔值动态填充。但是,一旦将该值放入隐藏的输入字段,它就会变成字符串。

一旦字段转换为字符串,我唯一能找到的确定它的布尔值的方法就是依赖于它的字符串表示的文字值。

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

有没有更好的方法来实现这一点?


当前回答

以下内容就足够了

String.prototype.boolean = function() {
    return "true" == this; 
};

"true".boolean() // returns true "false".boolean() // returns false

其他回答

你甚至不需要使用变量,如果你知道'true'总是小写,你可以使用返回true或false的变量:

(eval(yourBooleanString == 'true'))

以下内容就足够了

String.prototype.boolean = function() {
    return "true" == this; 
};

"true".boolean() // returns true "false".boolean() // returns false

一种更短的方法可以是varisTrueSet=(myValue==“true”)?真:假;假设只有“true”为真,其他值为假。

为了计算布尔值和类似布尔值的字符串,我使用了以下简单公式:

var trueOrStringTrue = (trueOrStringTrue === true) || (trueOrStringTrue === 'true');

显然,对于true和“true”,它都将返回true。其他一切都返回false。

这是我提交的一行代码:我需要计算一个字符串和输出,如果为“true”,则为true,如果为false,则为false;如果为“-12.35673”,则是一个数字。

val = 'false';

val = /^false$/i.test(val) ? false : ( /^true$/i.test(val) ? true : val*1 ? val*1 : val );