Javascript 带字符索引检查的简写if

Javascript 带字符索引检查的简写if,javascript,shorthand-if,Javascript,Shorthand If,我使用一个简写的if语句来检查内容中是否有斜体标记 remove = (content.indexOf('<i>') === true) ? true : false; alert("ORIGINAL CONTENT: " + content + "\nDoes content contain <i>? " + remove); remove=(content.indexOf(“”)==true)?真:假; 警报(“原始内容:“+CONTENT+”\n内容是否包含?”+

我使用一个简写的if语句来检查内容中是否有斜体标记

remove = (content.indexOf('<i>') === true) ? true : false;
alert("ORIGINAL CONTENT: " + content + "\nDoes content contain <i>? " + remove);
remove=(content.indexOf(“”)==true)?真:假;
警报(“原始内容:“+CONTENT+”\n内容是否包含?”+删除);
当该警报弹出时,将显示以下内容:


我做错了什么?

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

在你的情况下,我只需要定义

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

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

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

在你的情况下,我只需要定义

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

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

您考虑过使用正则表达式吗

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

感谢RobG的更正。

您考虑过使用正则表达式吗

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

感谢RobG的更正。

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

> content.indexOf('<i>') === true
>content.indexOf(“”)==true
请注意,返回一个数字,并将其与布尔值进行比较。因为它们是不同的类型,所以结果总是错误的。如果使用了等于运算符“==”,则如果左侧表达式返回除零(0)以外的任何值,则将返回true


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

主要在其他答案中介绍,但在:

> content.indexOf('<i>') === true
>content.indexOf(“”)==true
请注意,返回一个数字,并将其与布尔值进行比较。因为它们是不同的类型,所以结果总是错误的。如果使用了等于运算符“==”,则如果左侧表达式返回除零(0)以外的任何值,则将返回true


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

bla===true的目的是什么?true:false当您还可以写入
bla===true
时?如果你不明白,你的代码现在看起来像
true?true:false
。我给出了另一个值。我只是最终输入真或假,看看为什么它会给出错误的结果。但是你的评论是100%真实的,所以我投了赞成票。编辑以添加:这是最终发生的情况:
(content.indexOf(“”)!==-1)?“”:内容
bla===true的目的是什么?true:false当您还可以写入
bla===true
时?如果你不明白,你的代码现在看起来像
true?true:false
。我给出了另一个值。我只是最终输入真或假,看看为什么它会给出错误的结果。但是你的评论是100%真实的,所以我投了赞成票。编辑以添加:这是最终发生的情况:
(content.indexOf(“”)!==-1)?“”:内容
旁注:三元运算符仅表示“具有三个操作数的运算符”。我更喜欢使用条件运算符一词,因为它描述了运算符的实际功能。:)@MaxArt,谢谢你的回答。当涉及到if等时,我经常会混淆PHP和Javascript/jquery。不知道为什么。。。无论如何,它现在工作得很好。@MaxArt它实际上是一个三元表达式,并且使用了@Guffa“条件运算符”也很好。我知道“三元”的意思是其他的,但实际上Javascript中只有一个…@RobG它是一个三元运算符。我认为,只要在这么多编程语言中只有一个三元运算符,任何人都不会对此感到困惑。旁注:三元运算符只是指“有三个操作数的运算符”。我更喜欢使用条件运算符一词,因为它描述了运算符的实际功能。:)@MaxArt,谢谢你的回答。当涉及到if等时,我经常会混淆PHP和Javascript/jquery。不知道为什么。。。无论如何,它现在工作得很好。@MaxArt它实际上是一个三元表达式,并且使用了@Guffa“条件运算符”也很好。我知道“三元”的意思是其他的,但实际上Javascript中只有一个…@RobG它是一个三元运算符。我不认为任何人会对此感到困惑,只要在这么多的编程语言中只有一个三元运算符。你有向后的,测试是正则表达式的方法,而不是字符串:
/.test(content)
。你有向后的,测试是正则表达式的方法,而不是字符串:
/.test(content)