0

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

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

当该警报弹出时,它显示以下内容: 警报框显示 < i > in string,但返回 false

我究竟做错了什么?

4

3 回答 3

5

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

在你的情况下,我会简单地定义

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

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

于 2012-06-08T08:41:20.363 回答
0

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

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

感谢 RobG 的更正。

于 2012-06-08T08:46:19.743 回答
0

主要涵盖在其他答案中,但在:

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

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

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

于 2012-06-08T09:10:44.230 回答