使用javascript从字符串中删除双引号
这个问题在这里已经有了答案:
我认为你应该考虑为什么价值是“假”而不是假。
该值分配在哪里,是否有任何理由不能将其分配为适当的布尔值?
否则,你可以做这样的事情:
function isStrTrueOrFalse(string) { return !string.toLowerCase().match(/false/);}
这样,任何“false”的字符串都会返回false。 任何其他字符串返回true。 这是因为“str”是真的。 不管内容是什么。
您也可以在正则表达式中使用i
标志,而不是.toLowerCase()
:
function isStrTrueOrFalse(string) { return !string.match(/false/i);}
如评论中所述。
你被低估的原因是你误解了JavaScript中使用类型的方式。 以下代码:
var x = "thing";
创建一个字符串,一个包含字符thing
并绑定变量x
到它。 字符串中没有引号。 引号是解析器想要存储字符串的消息。
请注意,将此值记录到控制台时,会将引号放在值的四周,以显示它是一个字符串,因此它显示为用引号括起来。 这些引号不存储。
你的替换代码不起作用的原因是首先在字符串中没有引号。
如果你写了以下内容:
var y = ""thing"";
要么
var z = '"thing"';
那么你会有一个带有引号的字符串。
你应该做的是解析包含true
的字符串。 最快的方法可能是这样的:
function parseBool(input) {
if (input == "true") { return true; }
else if (input == "false") { return false; }
else return null; // or false, or throw exception, or whatever
}
链接地址: http://www.djcxy.com/p/75073.html