我正在使用简写 if 语句来检查内容中是否有斜体标签。
remove = (content.indexOf('<i>') === true) ? true : false;
alert("ORIGINAL CONTENT: " + content + "\nDoes content contain <i>? " + remove);
当该警报弹出时,它显示以下内容: 警报框显示 < i > in string,但返回 false
我究竟做错了什么?
我正在使用简写 if 语句来检查内容中是否有斜体标签。
remove = (content.indexOf('<i>') === true) ? true : false;
alert("ORIGINAL CONTENT: " + content + "\nDoes content contain <i>? " + remove);
当该警报弹出时,它显示以下内容: 警报框显示 < i > in string,但返回 false
我究竟做错了什么?
indexOf
返回字符串在另一个字符串中的位置,如果未找到则返回 -1。这不像strpos
在 PHP 中。所以你必须检查content.indexOf('<i>') !== -1
。
在你的情况下,我会简单地定义
remove = content.indexOf('<i>') !== -1;
三元运算符(我以前知道这个名字)在这里并不是必需的,因为比较已经给出了您需要的布尔值。
您是否考虑过使用正则表达式?
remove = /<i>/.test(content);
感谢 RobG 的更正。
主要涵盖在其他答案中,但在:
> content.indexOf('<i>') === true
请注意,String.prototype.intexOf返回一个数字,并且它正在与布尔值进行比较。由于它们是不同的类型,因此结果将始终为 false。如果使用了等于运算符“==”,那么如果左侧表达式返回零 (0) 以外的任何值,它将返回 true。
顺便说一句,斜体文本可以使用除 I 之外的元素来实现,例如通过 CSS 应用适当样式的 span 元素。