indexOf在JavaScript中不起作用
我正在检查JAVASCRIPT中字符串的索引。这是假的。其中,值确实属于它,如下所示:indexOf在JavaScript中不起作用,javascript,replace,indexof,Javascript,Replace,Indexof,我正在检查JAVASCRIPT中字符串的索引。这是假的。其中,值确实属于它,如下所示: if(idOfControl.indexOf(idOfButton)) == is giving false for the below values. idOfControl = "dlInventory_btnEditComment_0" idOfButton = "dlInventory_btnEditComment" 但是如果我运行idOfControl.replace(idOfButto
if(idOfControl.indexOf(idOfButton)) == is giving false for the below values.
idOfControl = "dlInventory_btnEditComment_0"
idOfButton = "dlInventory_btnEditComment"
但是如果我运行idOfControl.replace(idOfButton,”)代码>它正在工作并替换文本
如果在0
位置找到字符串,则任何原因?indexOf
也可以返回0<代码>0
的计算结果为false
。尝试:
if(idOfControl.indexOf(idOfButton) > -1)
更多信息:
如果在0
位置找到字符串,indexOf
也可以返回0<代码>0的计算结果为false
。尝试:
if(idOfControl.indexOf(idOfButton) > -1)
更多信息:有以下三大选择: indexOf>-1
indexOf
的结果可以是0
,这意味着字符串位于字符串的开头。未找到字符串时,返回值为-1
,因此:
if (idOfControl.indexOf(idOfButton) > -1) {
// Do something
}
如果@paxdiablo评论道:
if (idOfControl.indexOf(idOfButton) >= 0) {
// Do something
}
通过正则表达式
您可以使用一个非常简单的正则表达式来测试匹配
var idOfControl = "dlInventory_btnEditComment_0"
var control = /dlInventory_btnEditComment/;
if (idOfControl.test(control)) {
// do something
}
可以增强此方法以捕获字符串的最后一个数字(如果需要)
您可以在这里尝试:
通过indexOf以一种骇人的方式
当位置为时,使用位运算符返回真实值=-1
(在二的补码表示法中,-1
在内部表示为111…111
,其反转为000…000
,即0
,即假值)。事实上,它比>-1选项更有效,但更难阅读和理解。(编辑:这变得如此流行,你可以说它是一个标准)
有以下三大选择: indexOf>-1
indexOf
的结果可以是0
,这意味着字符串位于字符串的开头。未找到字符串时,返回值为-1
,因此:
if (idOfControl.indexOf(idOfButton) > -1) {
// Do something
}
如果@paxdiablo评论道:
if (idOfControl.indexOf(idOfButton) >= 0) {
// Do something
}
通过正则表达式
您可以使用一个非常简单的正则表达式来测试匹配
var idOfControl = "dlInventory_btnEditComment_0"
var control = /dlInventory_btnEditComment/;
if (idOfControl.test(control)) {
// do something
}
可以增强此方法以捕获字符串的最后一个数字(如果需要)
您可以在这里尝试:
通过indexOf以一种骇人的方式
当位置为时,使用位运算符返回真实值=-1
(在二的补码表示法中,-1
在内部表示为111…111
,其反转为000…000
,即0
,即假值)。事实上,它比>-1选项更有效,但更难阅读和理解。(编辑:这变得如此流行,你可以说它是一个标准)
IndexOf返回字符串的索引,如果找到,else返回-1另一个选项是使用类似正则表达式的
control=/dlInventory\u btnEditComment/
,然后使用if(idOfControl.test(control)){…}
它不是false,而是falsy
。这是一个很大的区别。IndexOf返回字符串的索引,如果找到,else返回-1另一个选项是使用正则表达式,如control=/dlInventory\u btnEditComment/
,然后if(idOfControl.test(control)){…}
它不是false
,而是falsy
。这是一个很大的区别。或者=0
,这对我来说更自然。或者如果你想要效率,如果(~idOfControl.indexOf(idOfButton)){…}
。然而,这更难理解。我不在严肃的代码中使用它。@paxdiablo=0
vs-1
,一场激动人心的辩论:D@wared,我不想发动一场宗教战争。我只是说,给出的代码似乎等同于英文“如果这不是无效值”。使用=0
将其转换为“如果这是一个有效值”。诚然,这种差异可以被视为无关紧要,但我有时会对英语和编程中的双重否定表示怀疑:-@paxdiablo我只是想指出这是一个观点问题。和平:)或=0
这对我来说似乎更自然。或者如果你想要效率,如果(~idOfControl.indexOf(idOfButton)){…}
。然而,这更难理解。我不在严肃的代码中使用它。@paxdiablo=0
vs-1
,一场激动人心的辩论:D@wared,我不想发动一场宗教战争。我只是说,给出的代码似乎等同于英文“如果这不是无效值”。使用=0
将其转换为“如果这是一个有效值”。诚然,这种差异可以被视为无关紧要,但我有时会对英语和编程中的双重否定表示怀疑:-@paxdiablo我只是想指出这是一个观点问题。和平:)