JavaScript有parseInt()和parseFloat(),但没有parseBool或parseBoolean方法在全球范围内,据我所知.
我需要一个方法,使用"true"或"false"之类的值来获取字符串并返回JavaScript Boolean.
这是我的实现:
function parseBool(value) {
return (typeof value === "undefined") ?
false :
// trim using jQuery.trim()'s source
value.replace(/^\s+|\s+$/g, "").toLowerCase() === "true";
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的功能吗?请给我你的反馈.
谢谢!
RGB*_*RGB 76
我倾向于用三元组做一个衬里.
var bool_value = value == "true" ? true : false
Run Code Online (Sandbox Code Playgroud)
编辑:更快的是简单地避免使用逻辑语句,而只是使用表达式本身:
var bool_value = value == 'true';
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为value == 'true'根据value变量是否是一个字符串来评估'true'.如果是,则整个表达式变为true,如果不变,则变为false,然后该结果bool_value在评估之后被分配.
F.A*_*ves 34
您可以使用JSON.parse:
JSON.parse("true"); //returns boolean true
Run Code Online (Sandbox Code Playgroud)
Mar*_*sen 14
这取决于您希望功能如何工作.
如果您只想测试字符串中的'true'一词,并定义任何不具有false的字符串(或非字符串),最简单的方法可能就是:
function parseBoolean(str) {
return /true/i.test(str);
}
Run Code Online (Sandbox Code Playgroud)
如果你想确保整个字符串是单词true,你可以这样做:
function parseBoolean(str) {
return /^true$/i.test(str);
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*ing 10
您可以尝试以下方法:
function parseBool(val)
{
if ((typeof val === 'string' && (val.toLowerCase() === 'true' || val.toLowerCase() === 'yes')) || val === 1)
return true;
else if ((typeof val === 'string' && (val.toLowerCase() === 'false' || val.toLowerCase() === 'no')) || val === 0)
return false;
return null;
}
Run Code Online (Sandbox Code Playgroud)
如果它是有效值,则返回等效的bool值,否则返回null.
您可以使用 JSON.parse 或 jQuery.parseJSON 并使用类似以下内容查看它是否返回 true:
function test (input) {
try {
return !!$.parseJSON(input.toLowerCase());
} catch (e) { }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140001 次 |
| 最近记录: |