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";
}
这是一个好函数吗?请给我你的反馈。
谢谢!
发布于 2015-07-12 01:51:01
您可以使用JSON.parse来实现此目的:
JSON.parse("true"); //returns boolean true
发布于 2011-03-07 20:07:19
这取决于您希望函数如何工作。
如果您只想测试字符串中的单词'true‘,并将没有该单词的任何字符串(或非字符串)定义为false,最简单的方法可能是:
function parseBoolean(str) {
return /true/i.test(str);
}
如果您希望确保整个字符串都是单词true,您可以这样做:
function parseBoolean(str) {
return /^true$/i.test(str);
}
发布于 2012-07-13 19:57:51
您可以尝试以下操作:
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;
}
如果它是一个有效值,则返回等价的布尔值,否则返回null。
https://stackoverflow.com/questions/5219105
复制相似问题