首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:解析字符串布尔值?

JavaScript:解析字符串布尔值?
EN

Stack Overflow用户
提问于 2011-03-07 19:27:49
回答 13查看 186.9K关注 0票数 78

JavaScript有parseInt()parseFloat(),但据我所知,全局作用域中没有parseBoolparseBoolean方法。

我需要一个方法,它接受像"true“或"false”这样的值的字符串,并返回一个JavaScript Boolean

下面是我的实现:

代码语言:javascript
复制
function parseBool(value) {
    return (typeof value === "undefined") ? 
           false : 
           // trim using jQuery.trim()'s source 
           value.replace(/^\s+|\s+$/g, "").toLowerCase() === "true";
}

这是一个好函数吗?请给我你的反馈。

谢谢!

EN

回答 13

Stack Overflow用户

发布于 2015-07-12 01:51:01

您可以使用JSON.parse来实现此目的:

代码语言:javascript
复制
JSON.parse("true"); //returns boolean true
票数 68
EN

Stack Overflow用户

发布于 2011-03-07 20:07:19

这取决于您希望函数如何工作。

如果您只想测试字符串中的单词'true‘,并将没有该单词的任何字符串(或非字符串)定义为false,最简单的方法可能是:

代码语言:javascript
复制
function parseBoolean(str) {
  return /true/i.test(str);
}

如果您希望确保整个字符串都是单词true,您可以这样做:

代码语言:javascript
复制
function parseBoolean(str) {
  return /^true$/i.test(str);
}
票数 15
EN

Stack Overflow用户

发布于 2012-07-13 19:57:51

您可以尝试以下操作:

代码语言:javascript
复制
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。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5219105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档