Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:解析bool_Javascript_Parsing_Boolean - Fatal编程技术网

JavaScript:解析bool

JavaScript:解析bool,javascript,parsing,boolean,Javascript,Parsing,Boolean,是否有一个单独的函数(或语言结构)可用于仅计算以下值,使其成为true(以及任何其他值成为false) 下面将删除所有空白,将其更改为小写,并将其与字符串literaltrue进行比较。将返回true值的另一种情况是当传递到parseInt()时返回1的数字 假设你指的是这些例子,你真正的意思是: 解释为字符串,仅包含不区分大小写的单词“true”,周围有可选的空格 解释为数字,计算结果正好为1 以下两个条件将过滤掉所有异常值 /^\s*true\s*$/i.test(value) || Num

是否有一个单独的函数(或语言结构)可用于仅计算以下值,使其成为
true
(以及任何其他值成为
false


下面将删除所有空白,将其更改为小写,并将其与字符串literal
true
进行比较。将返回
true
值的另一种情况是当传递到
parseInt()时返回
1
的数字


假设你指的是这些例子,你真正的意思是:

  • 解释为字符串,仅包含不区分大小写的单词“true”,周围有可选的空格
  • 解释为数字,计算结果正好为1
  • 以下两个条件将过滤掉所有异常值

    /^\s*true\s*$/i.test(value) || Number(value) == 1
    

    ~trueValues.indexOf(某物)
    。(您确实指定了“仅以下值”。)可能重复:您给定的所有值在强制转换为布尔值时都将计算为
    true
    。你想完成什么?听起来有点恶心。您希望
    \t tRUe
    tRUe
    ,但
    \t tRe
    false
    。也许你应该重新考虑你的需求。谁都知道,如何区分
    1.00
    1
    ?很好的观点,更新后看起来更像你的解决方案,只是有一个
    .trim()
    。。。有争议哪一个更好,但我喜欢你的简单易读。
    if(!String.prototype.trim) {
      bool = (val.replace(/^\s\s*/, '').replace(/\s\s*$/, '').toLowerCase() === "true" || Number(val) === 1)
    } else {
      bool = (val.trim().toLowerCase() === "true" || Number(val) === 1)
    }
    
    /^\s*true\s*$/i.test(value) || Number(value) == 1