对于数字,您可以+"10"
代替Number("10")
,这可以更快。有没有办法从字符串中为布尔值执行此操作?。
答案 0 :(得分:5)
使用正则表达式很愚蠢。如果你真的只想匹配字符串'true'
而不关心区分大小写,那么只需要与该字符串进行比较:
function parseBoolean(s)
{
return s === 'true';
}
我想如果我真的要和你一起玩“填补空白”,我会回答:
+"10" is to Number("10") as !!"true" is to Boolean("true")
因为当Boolean(x)
是假值时,false
仅返回x
,即x ∊ {null, undefined, false, 0, ''}
时。{/ p>
答案 1 :(得分:1)
如果匹配单词true
的所有案例变体是必需的,我相信使用正则表达式是最快的,例如:
/^true$/i.match(input)
答案 2 :(得分:1)
一些不太好的和邪恶的解决方案:
window.toBool = {'false':false,'true':true};
toBool['false'] === false
eval('false') === false // don't ever do this!
JSON.parse('false')