带有字符索引检查的速记



我正在使用速记if语句来检查内容中是否有斜体标签。

remove = (content.indexOf('<i>') === true) ? true : false;
alert("ORIGINAL CONTENT: " + content + "nDoes content contain <i>? " + remove);

弹出该警报时,它会显示以下内容:警报框显示字符串中的 i><,但返回 false

我做错了什么?

indexOf返回字符串在另一个字符串中的位置,如果未找到,则返回 -1。这不像 PHP 中的strpos。所以你必须检查content.indexOf('<i>') !== -1

在您的情况下,我只需定义

remove = content.indexOf('<i>') !== -1;

三元运算符(我曾经知道这个名字)在这里并不是真正必要的,因为比较已经给出了您需要的布尔值。

主要包含在其他答案中,但在:

> content.indexOf('<i>') === true

请注意,String.prototype.intexOf 返回一个数字,并且正在将其与布尔值进行比较。由于它们是不同的类型,因此结果将始终为 false。如果使用了等于运算符"==",则如果左手表达式返回零 (0) 以外的任何值,它将返回 true。

顺便说一下,斜体文本可以使用 I 以外的元素来实现,例如通过 CSS 应用了具有适当样式的 span 元素。

您是否考虑过使用正则表达式?

remove = /<i>/.test(content);

感谢 RobG 的更正。

最新更新