速记 - 如果有字符索引检查

时间:2012-06-08 08:39:59

标签: javascript shorthand-if

我正在使用简写if语句来检查内容中是否包含斜体标记。

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

当弹出该警告时,它会显示以下内容: Alert box shows < i > in string, but returns false

我做错了什么?

3 个答案:

答案 0 :(得分:5)

indexOf返回另一个字符串中字符串的位置,如果找不到则返回-1。它与PHP中的strpos不同。因此,您必须检查content.indexOf('<i>') !== -1

在你的情况下,我只是定义

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

这里不需要三元运算符(我以前知道这个名称),因为比较已经给出了你需要的布尔值。

答案 1 :(得分:0)

您是否考虑过使用Regex?

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

感谢RobG的纠正。

答案 2 :(得分:0)

其他答案主要涉及,但在:

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

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

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